studio otro llamar item hacer getitematposition clic adapterview activity android autocompletetextview onitemclicklistener

android - otro - autocompletetextview setonitemselectedlistener no funciona



listview onitemclicklistener android (3)

Ahí estoy tratando de escribir código para la actividad de autorización. Cuando coloco alguna entrada en inputEmail, espero que mi inputPasword se presente automáticamente si existe el registro correspondiente. Sin embargo, onItemSelectedListener parece no funcionar. Cuando selecciono el artículo no pasa nada. El registro no se pega a. Me gustaría saber si cometí algún error o si me estoy yendo mal.

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 } });


Este es un duplicado de esta question

Sin embargo, debe usar AdapterView.OnItemClickListener() no OnItemSelectedListener.

Lo probé con éxito usando el siguiente fragmento de código. Vogella a Vogella por las cosas del adaptador.

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(); } });


Use setOnItemClickListener y no use setOnItemSelectedListener. También use su objeto adaptador personalizado para obtener los valores seleccionados.

prodNameAutoCompTxt.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() { @Override public void onItemSelected(AdapterView<?> adapterView, View view, int i, long l) { //Don''t use this method } @Override public void onNothingSelected(AdapterView<?> adapterView) { System.out.println("Nothing selected"); } }); prodNameAutoCompTxt.setOnItemClickListener(new AdapterView.OnItemClickListener() { @Override public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) { //Use this method Product prodObj=(Product) prodAutoAdapter.getItem(i); new UomSynch().execute(prodObj.getProdID()); } });


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(); } });

Solo obtenga el adaptador de AutoCompleteTextView y use la posición.