android-为listview设置长按监听器
作者:互联网
我有以下代码:
public class MainActivity extends ListActivity {
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
protected void onListItemClick(ListView l, View v, final int position, long id) {
super.onListItemClick(l, v, position, id);
}}
我需要将其更改为onListItemLongClick(),但如何?可能吗?
解决方法:
您的问题与this one非常相似,但看起来并非完全相同.
您注意到的是ListActivity类没有专门针对这种情况的方法重写.
为了将此功能添加为方法覆盖,您的类应实现AdapterView.OnItemLongClickListener接口,然后可以添加onItemLongClick()方法覆盖,其作用与已具有的onListItemClick()方法覆盖相同,但会响应长按.
只要确保遵循this answer的说明,就必须在布局xml中使用android:longClickable =“ true”,或调用listview.setLongClickable(true);.
例:
public class MainActivity extends ListActivity implements AdapterView.OnItemLongClickListener {
ListView listview;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
ListView listview = (ListView) findViewById(R.id.list);
listview.setLongClickable(true);
}
@Override
public boolean onItemLongClick(AdapterView<?> l, View v,
final int position, long id) {
Toast.makeText(this, "long clicked pos: " + position, Toast.LENGTH_LONG).show();
return true;
}
protected void onListItemClick(ListView l, View v, final int position, long id) {
super.onListItemClick(l, v, position, id);
Toast.makeText(this, "short clicked pos: " + position, Toast.LENGTH_LONG).show();
}
//....................
标签:android,listview,listener,long-click 来源: https://codeday.me/bug/20191010/1887112.html