【发布时间】:2011-06-16 17:30:54
【问题描述】:
我的应用中有一个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));
}
});
}
}
【问题讨论】:
-
感谢您添加此代码 sn-p,它帮助我完成了将近 6 小时的工作。为此 +1
-
代码有效。给像我这样的初学者的一个小提示,粘贴此代码后,单击该字段并输入一个字母以查看建议框。我确实粘贴了代码,单击了该文件,然后等待弹出的建议框永远不会打开。但是有 showDialogBox() 方法来显示 POPUP。
标签: android android-adapterview