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 } });
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.
Just call your adapter. getItem(position) and you will get the output you want. For example skillLevelAdapter. getItem(position).
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(); } });
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.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With