我的应用程序中有一个AutoCompleteTextView可以正常工作.我已经成功创建了一个onClickItemListener.问题是如何获取用户选择的文本.事情就是这样:我有一个ArrayList,其中的单词被传递给Adapter来搜索建议.当用户键入单词时,建议列表变得更短(在UI侧的行中),所以当我想从索引中的ArrayList获取单词时,用户选择了我得到错误的单词,因为索引不匹配.如何获得用户选择的文本(String)而不必弄乱索引?这是我的代码:
public class AutocompleteActivity extends BaseActivity {
private DBManager m_db;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.autocomplete);
m_db = new DBManager(this);
final ArrayList<String> words = m_db.selectAllWords();
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, R.layout.listitem, words);
AutoCompleteTextView tv = (AutoCompleteTextView)findViewById(R.id.autocomplete);
tv.setThreshold(1);
tv.setAdapter(adapter);
tv.setOnItemClickListener(new OnItemClickListener() {
public void onItemClick(AdapterView<?> arg0, View arg1, int arg2, long arg3) {
Log.i("SELECTED TEXT WAS------->", words.get(arg2));
}
});
}
}
Run Code Online (Sandbox Code Playgroud) 我有一个数组(array1 with States)AutoCompleteTextview,我在其中填充array1.当我从AutocompleteTextViewI中选择值时,state从AutoCompleteTextView下拉列表中选择一个
我想要的是从我选择的array1中获取项目的位置.
我已经试过是的.OnClickEventAutocompelteTextView
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;
}
});
Run Code Online (Sandbox Code Playgroud)
这SS给我,我从下拉列表中选择的价值,但我希望得到position of the value的阵列1.例如,我有一个大小为4的数组,如array1 = {A,B,C,D},如果我选择B,它应该返回我在数组中的B位置,即2.
我希望我说清楚.提前致谢.