Java – how to automatically fill edit text from the middle?
I'm developing a contact manager project for android.in. I want to automatically fill in the end of the e-mail address in this field when a user registers. For example, when a user enters his or her user name, it should automatically give @ gmail.com or @ outlook.com suggestions, and so on
Well, this is a small part of my code
String[] maindb = {"@gmail.com", "@rediffmail.com", "@hotmail.com", "@outlook.com"};
mail = (AutoCompleteTextView) findViewById(R.id.A1_edt_mail);
ArrayAdapter<String> adpt = new ArrayAdapter<String>(this, R.layout.support_simple_spinner_dropdown_item, maindb);
mail.setAdapter(adpt);
Well, I have this output
But I hope this suggestion should appear when the user enters his / her user name, but it is not
Well, my question is not the repetition of Android how an EditText work as autocomplete. My question is different from this
Thank you in advance
resolvent:
I recommend that you append the text in the email to each string in maindb before setting up the adapter – > use textwatcher to detect changes to the mail view
edit
Maybe that's what you're looking for
final ArrayList<String> maindb = new ArrayList<>();
maindb.add("@gmail.com");
maindb.add("@rediffmail.com");
maindb.add("@hotmail.com");
maindb.add("@outlook.com");
final ArrayList<String> compare = new ArrayList<>();
final ArrayAdapter<String> adpt = new ArrayAdapter<String>(MainActivity.this, R.layout.support_simple_spinner_dropdown_item, compare);
Word.setAdapter(adpt);
Word.addTextChangedListener(new TextWatcher() {
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
}
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
}
@Override
public void afterTextChanged(Editable s) {
if (s.length() >= 0)
if (!s.toString().contains("@")) {
compare.clear();
for (String aMaindb : maindb) {
aMaindb = s + aMaindb;
compare.add(aMaindb);
}
adpt.clear();
adpt.addAll(compare);
}
}
});
I hope this will help