Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

autocompletetextview setonitemselectedlistener not working

there i am trying to write code for authorisation activity. When i am putting some entry in inputEmail i expect that my inputPasword will be fileed automaticly if corresponding record exists. However onItemSelectedListener seemd not to work. When i select item nothing happens. Log does not fiers to. I'd like to know if i made some mistake or i am going in wrong aproach.

AutoCompleteTextView inputEmail; inputEmail = (AutoCompleteTextView) findViewById(R.id.loginEmail); inputEmail.setOnClickListener(new View.OnClickListener() {              @Override             public void onClick(View v) {                 // TODO Auto-generated method stub                  Set<String> keys = prefs.getAll().keySet();                 emails.clear();                  if (keys.size() != 0) {                     emails.addAll(keys);                 } else                     emails.add("");                  inputEmail.setAdapter(adapter);                  email = inputEmail.getText().toString();              }          }); inputEmail.setOnItemSelectedListener(new OnItemSelectedListener() {              @Override             public void onItemSelected(AdapterView<?> arg0, View arg1,                     int arg2, long arg3) {                 // TODO Auto-generated method stub                 email = inputEmail.getText().toString();                 password = prefs.getString(email, "");                 Log.d(email + " "+password, "email+password");                 if (password.length() > 1) {                     inputPassword.setText(password);                 }              }              @Override             public void onNothingSelected(AdapterView<?> arg0) {                 // TODO Auto-generated method stub              }          }); 
like image 914
Yarh Avatar asked Jun 04 '13 17:06

Yarh


People also ask

How do I get the selected position in AutoCompleteTextView?

Use List instead of Array. Implement onItemClickListener for AutoCompleteTextView, then use indexOf on your list to find the index of selected item. Show activity on this post.

How do you get the ID of the selected item of the AutoCompleteTextView in Android?

Just call your adapter. getItem(position) and you will get the output you want. For example skillLevelAdapter. getItem(position).


2 Answers

This is a duplicate of this question

However, you need to use AdapterView.OnItemClickListener() not OnItemSelectedListener.

I tested it with success using the following code snippet. Credit to Vogella for the adapter stuff.

    AutoCompleteTextView actv = (AutoCompleteTextView) findViewById(R.id.autocomplete_textview);      String[] values = new String[] { "Android", "iPhone", "WindowsMobile",             "Blackberry", "WebOS", "Ubuntu", "Windows7", "Max OS X",             "Linux", "OS/2", "Ubuntu", "Windows7", "Max OS X", "Linux",             "OS/2", "Ubuntu", "Windows7", "Max OS X", "Linux", "OS/2",             "Android", "iPhone", "WindowsMobile" };      ArrayList<String> list = new ArrayList<String>();     for (int i = 0; i < values.length; ++i) {         list.add(values[i]);     }     final ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,             android.R.layout.simple_list_item_1, list);     actv.setAdapter(adapter);      actv.setOnItemClickListener(new AdapterView.OnItemClickListener() {          @Override         public void onItemClick(AdapterView<?> parent, View view,                 int position, long id) {             Toast.makeText(MainActivity.this,                     adapter.getItem(position).toString(),                     Toast.LENGTH_SHORT).show();         }     }); 
like image 161
Josh Avatar answered Sep 22 '22 01:09

Josh


autoCompleteTextView.setOnItemClickListener(new AdapterView.OnItemClickListener() {         @Override         public void onItemClick(AdapterView<?> parent, View view, int position, long id) {             String selectedItem=autoCompleteTextView.getAdapter().getItem(position).toString();             Toast.makeText(getApplicationContext(),selectedItem ,  Toast.LENGTH_SHORT).show();         }     }); 

Just get the adapter of AutoCompleteTextView and use the position.

like image 26
REMITH Avatar answered Sep 23 '22 01:09

REMITH