package
com.example.gfgvalidator;
import
static
android.widget.Toast.LENGTH_SHORT;
import
android.graphics.Color;
import
android.graphics.drawable.ColorDrawable;
import
android.os.Bundle;
import
android.util.Log;
import
android.view.View;
import
android.widget.ArrayAdapter;
import
android.widget.AutoCompleteTextView;
import
android.widget.Toast;
import
androidx.appcompat.app.ActionBar;
import
androidx.appcompat.app.AppCompatActivity;
import
java.util.Arrays;
public
class
MainActivity
extends
AppCompatActivity {
String[] countries={
"India"
,
"Japan"
,
"West indies"
,
"indonesia"
,
"Indiana"
,
"South Asia"
,
"Englishtan"
,
"Srilanka"
,};
@Override
protected
void
onCreate(Bundle savedInstanceState) {
super
.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
ArrayAdapter<String> adapter=
new
ArrayAdapter<String>(
this
,android.R.layout.simple_dropdown_item_1line,countries);
AutoCompleteTextView textView=(AutoCompleteTextView)findViewById(R.id.autoCompleteTextView);
textView.setThreshold(
1
);
textView.setAdapter(adapter);
textView.setValidator(
new
AutoCompleteTextView.Validator() {
@Override
public
boolean
isValid (CharSequence text){
Log.v(
"Test"
,
"Checking if valid: "
+ text);
Arrays.sort(countries);
if
(Arrays.binarySearch(countries, text.toString())>
0
) {
Toast.makeText(MainActivity.
this
,
"Correct"
, LENGTH_SHORT).show();
return
true
;
}
return
false
;
}
@Override
public
CharSequence fixText (CharSequence invalidText){
return
"wrong input please correct"
;
}
});
ActionBar aBar = getSupportActionBar();
ColorDrawable cd =
new
ColorDrawable(Color.parseColor(
"#FF00FF00"
));
if
(aBar !=
null
) {
aBar.setBackgroundDrawable(cd);
}
}
class
FocusListener
implements
View.OnFocusChangeListener {
@Override
public
void
onFocusChange(View v,
boolean
hasFocus) {
if
(v.getId() == R.id.autoCompleteTextView && !hasFocus) {
((AutoCompleteTextView)v).performValidation();
}
}
}
}