我希望ListView的项目反应在通常的点击和长点击。我试图设置两个侦听器,但它告诉我第一个侦听器不能应用于第二个侦听器。下面是我的代码的一部分:
AdapterView.OnItemClickListener itemClickListener = new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> adapterView, View view, int position, long id) {
TextView product = (TextView) view;
...
}
};
AdapterView.OnItemLongClickListener itemLongClickListener = new AdapterView.OnItemLongClickListener() {
@Override
public boolean onItemLongClick(AdapterView<?> adapterView, View view, int i, long l) {
TextView product = (TextView) view;
product.setBackgroundColor(Color.GREEN);
return true;
}
};
ArrayAdapter<String> arrayAdapter = new ArrayAdapter<String>(
this,
android.R.layout.simple_list_item_1,
arrayOfNames);
ListView itemsView = (ListView)findViewById(R.id.items);
itemsView.setOnItemClickListener(itemClickListener);
itemsView.setOnItemClickListener(itemLongClickListener);
发布于 2018-08-14 08:37:24
您必须在ListView中设置setOnItemLongClickListener():
lv.setOnItemLongClickListener(new OnItemLongClickListener() {
@Override
public boolean onItemLongClick(AdapterView<?> arg0, View arg1,
int pos, long id) {
// TODO Auto-generated method stub
Log.v("long clicked","pos: " + pos);
return true;
}
});
列表中每一项的XML (如果您使用自定义XML)也必须有android:longClickable="true"
(或者您可以使用方便的方法lv.setLongClickable(true);).
,这样您就可以得到一个只有一些项响应longclick的列表。
https://stackoverflow.com/questions/51832195
复制相似问题