studio how edittext developers autocompletar android autocompletetextview

how - autocompletetextview android developers



cómo encontrar la posición del elemento en una vista de Autocompletar y completar con Array (5)

Puede encontrar la cadena principal en la escucha clickItem. OSchools en este caso es el ArrayList personalizado.

Object item = parent.getItemAtPosition(position); for(OSchools d : data){ Log.e("name",d.getName()); String name = d.getName(); if(d.getName() != null && name.contains(item.toString())){ ID = d.getID(); }

Tengo una matriz ( array1 con States ) y AutoCompleteTextview en la que la estoy llenando con array1 . Cuando selecciono el valor de AutocompleteTextView selecciono un state de AutoCompleteTextView Dropdown

Lo que quiero es obtener la posición del elemento de array1 que he seleccionado.
Lo que he intentado es OnClickEvent de AutocompelteTextView .

STATE.setOnItemClickListener(new OnItemClickListener(){ @Override public void onItemClick(AdapterView<?> parent, View view, int position, long rowId) { String selection = (String) parent.getItemAtPosition(position); String num = selection; } });

Me está dando el valor que seleccioné del menú desplegable pero quiero obtener la position of the value en array1 . Por ejemplo, tengo una matriz de tamaño 4, como matriz1 = {A, B, C, D}, y si selecciono B debería devolverme la posición B en la matriz, es decir 2.

Espero haberlo dejado claro. Gracias por adelantado.


Use Lista en lugar de Array. Implemente onItemClickListener para AutoCompleteTextView, luego use indexOf en su lista para encontrar el índice del elemento seleccionado.

actvCity.setOnItemClickListener(new OnItemClickListener() { @Override public void onItemClick(AdapterView<?> arg0, View arg1, int arg2, long arg3) { int index = cityNames.indexOf(actvCity.getText().toString()); // Do Whatever you want to do ;) } });


Utilice la variable de posición en el onItemClick .

STATE.setOnItemClickListener(new OnItemClickListener(){ @Override public void onItemClick(AdapterView<?> parent, View view, int position, long rowId) { String selection = (String) parent.getItemAtPosition(position); int pos = -1; for (int i = 0; i < yourarray.length; i++) { if (yourarray[i].equals(selection)) { pos = i; break; } } System.out.println("Position " + pos); //check it now in Logcat } });


@Override public void onItemClick(AdapterView<?> parent, View view,int position, long id) { TextView txtvw=(TextView) view; String str=txtvw.getText().toString(); int index = contactNames.indexOf(str); }


Item.setOnItemClickListener(new AdapterView.OnItemClickListener() { @Override public void onItemClick(AdapterView<?> parent, View view, int position, long id) { //// id contains item if from database ItemNoSelected = id; } });

ID es de base de datos, podemos usar eso