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