我有一个ListView,我试图通过以下代码处理项目列表上的click事件
listView.setOnClickListener(new OnItemClickListener() {
public void onItemClick(AdapterView<?> parent, View view, int position,
long id) {
String item = ((TextView)view).getText().toString();
// Toast.makeText(getBaseContext(), item, Toast.LENGTH_LONG).show();
}
}
但是我收到编译时错误,如下所示
The method setOnClickListener(View.OnClickListener) in the type AdapterView<ListAdapter> is not applicable for the arguments (new AdapterView.OnItemClickListener(){})
如何解决此错误?
答案 0 :(得分:1)
将setOnClickListener
替换为setOnItemClickListener
: - )
答案 1 :(得分:1)
使用setOnItemClickListener()
为项目点击设置听众。 setOnClickListener()
会在View.OnClickListener
窗口小部件上注册常规ListView
。
答案 2 :(得分:1)
使用setOnItemClickListener()
listview.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position,
long id) {
// TODO Auto-generated method stub
String item = (String)adapter.getItemAtPosition(position);
}
});
答案 3 :(得分:0)
使用setOnItemClickListener
代替setOnClickListener
将onClickListener添加到getView()方法中的视图时使用的是 你有2个或更多的视图应该有自己的onClickListener,所以 为了你的更好onItemClickListener
即。将代码重写为
listView.setOnItemClickListener(new OnItemClickListener() {
public void onItemClick(AdapterView<?> parent, View view, int position,
long id) {
String item = ((TextView)view).getText().toString();
// Toast.makeText(getBaseContext(), item, Toast.LENGTH_LONG).show();
}
}
有关详细信息,请参阅 Which: ListView.setOnItemClickListener or TextView.setOnClickListener?