private AutoCompleteUserAdapter userAdapter; private AutoCompleteTextView actvName; private ArrayList<SearchUserItem> arrayList; actvName = findViewById(R.id.actvName); actvName.setOnItemClickListener(new AdapterView.OnItemClickListener() { @Override public void onItemClick(AdapterView<?> parent, View view, int position, long id) { actvName.setText(userAdapter.getItemNameAtPosition(position)); actvName.setSelection(actvName.getText().toString().trim().length()); } }); actvName.addTextChangedListener(new TextWatcher() { @Override public void beforeTextChanged(CharSequence s, int start, int count, int after) { } @Override public void onTextChanged(final CharSequence s, int start, int before, int count) { if (actvName.isPerformingCompletion()) {
AutoCompleteUserAdapter
public class AutoCompleteUserAdapter extends ArrayAdapter<SearchUserItem> { private Context context; private int layoutResourceId; private ArrayList<SearchUserItem> arrayList; public AutoCompleteUserAdapter(Context context, int layoutResourceId, ArrayList<SearchUserItem> arrayList) { super(context, layoutResourceId, arrayList); this.context = context; this.layoutResourceId = layoutResourceId; this.arrayList = arrayList; } @Override public View getView(int position, View convertView, ViewGroup parent) { try { if (convertView == null) { convertView = LayoutInflater.from(parent.getContext()).inflate(layoutResourceId, parent, false); } SearchUserItem model = arrayList.get(position); AppCompatTextView tvUserName = convertView.findViewById(R.id.tvUserName); tvUserName.setText(model.getFullname()); } catch (NullPointerException e) { e.printStackTrace(); } catch (Exception e) { e.printStackTrace(); } return convertView; } public String getItemNameAtPosition(int position) { return arrayList.get(position).getName(); } public String getItemIDAtPosition(int position) { return arrayList.get(position).getId(); } }
Ketan Ramani Jul 11 '19 at 12:49 2019-07-11 12:49
source share