配列(array1with States
)とAutoCompleteTextview
があり、そこにarray1。 AutocompleteTextView
から値を選択すると、AutoCompleteTextViewドロップダウンからstate
が選択されます
私が欲しいのは、私が選択したarray1からアイテムのpositionを取得することです。
私が試したのはOnClickEvent
の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;
}
});
ドロップダウンから選択した値が表示されますが、array1でposition of the value
を取得したいと思います。たとえば、array1 = {A、B、C、D}のようなサイズ4の配列があり、Bを選択すると、配列内のB位置、つまり2が返されます。
はっきりさせておきたいと思います。前もって感謝します。
onItemClick
でposition変数を使用します。
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
}
});
配列の代わりにリストを使用します。 AutoCompleteTextViewのonItemClickListenerを実装してから、リストでindexOfを使用して、選択したアイテムのインデックスを見つけます。
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 ;)
}
});
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はデータベースからのものであり、それを使用できます
@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);
}