关于AutoCompleteTextView中调用setOnItemClickListener中参数调用介绍
AutoCompleteTextView的经典调用,太多的帖子介绍了,比如下面就是public class CountriesActivity extends Activity {
protected void onCreate(Bundle icicle) {
super.onCreate(icicle);
setContentView(R.layout.countries);
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,
android.R.layout.simple_dropdown_item_1line, COUNTRIES);
AutoCompleteTextView textView = (AutoCompleteTextView)
findViewById(R.id.countries_list);
textView.setAdapter(adapter);
}
private static final String[] COUNTRIES = new String[] {
"Belgium", "France", "Italy", "Germany", "Spain"
};
}
不过很多帖子的介绍也是到此为止, 但是实际上我们希望在搜索出来的条目上继续点击以显示条目所代表的内容,所以我们需要调用AutoCompleteTextView.setOnItemClickListener()方法, 具体我们拿下面的code举例:
mAutoCompleteTextView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
public void onItemClick(AdapterView<?> parent, View view,
int position, long id) {
ListView listview = (ListView) parent;
ArrayAdapter<String> adapter = (ArrayAdapter<String>) parent.getAdapter();
TextView textview = (TextView) view;
}});
我们看到当我们在AutoCompleteTextView框中输入了我们想搜索的关键字后, 会在“下拉列表”中显示与该关键字匹配的“条目”。 我们在感兴趣的条目上点击, 就会调用上面code中的setOnItemClickListener方法中的onItemClick()方法。
上面code中的参数一一介绍如下:
1、new AdapterView.OnItemClickListener()
这里为什么会new? 这是因为我们实际上根据关键字搜索出来的“下拉列表”是一个全新的ListView, 这里的AdapterView就是这个全新的ListView(请注意我们这里运用的Adapter仍是全文第一段举例用的ArrayAdapter, 因此在第二段code中举例也是基于这个ArrayAdapter, 如果你的Adapter定义不同, 可能AdapterView对应的不是ListView, 而是你定义的Adapter对应的那个View。)
2、public void onItemClick(AdapterView<?> parent, View view, int position, long id)
基于1中的分析, 这里的parent就是这个ListView;
第二个参数view是指“下拉列表”中的你所点击的那个“条目”,而在ListView中“条目”的View是TextView。
第三个参数、第四个参数就是你所点击的“条目”在“下拉列表”中的位置和条目的id, 如果我们仍以本文的例子举例的话,这个postion和id实际上是相同的。 不过如果你的Adapter和AdapterView定义不同, 两者可能不同。具体情况请参考API Reference中的定义:
position The position of the view in the adapter.
id The row id of the item that was clicked.
各位清楚了么? --------------------编程问答-------------------- 感谢分享 --------------------编程问答-------------------- 学习~~ --------------------编程问答-------------------- 学习。 --------------------编程问答-------------------- 麻烦问一下,怎么在点击了相应的下拉列表项后那个下拉列表自动收回呢?? --------------------编程问答--------------------
学习了。
补充:移动开发 , Android