如何在填充了Array的AutoCompletetextview中查找项的位置

我有一个数组(带有状态的array1 )和AutoCompleteTextview ,其中我用array1填充它。 当我从AutocompleteTextView选择值时,我从AutoCompleteTextView下拉列表中选择一个state

我想要的是从我选择的array1中获取项目的位置
我尝试过的是AutocompelteTextView OnClickEvent

 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 valueposition of the value 。 例如,我有一个大小为4的数组,如array1 = {A,B,C,D},如果我选择B,它应该返回我在数组中的B位置,即2。

我希望我说清楚。 提前致谢。

onItemClick使用positionvariables。

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

使用List而不是Array。 为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 ;) } }); 
  @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来自数据库,我们可以使用它