你的问题非常类似于this one,但看起来它不是完全重复的。
你注意到的是列表活动类没有专门针对这种情况的方法重写。
为了将此功能添加为方法重写,您的类应该实现AdapterView.OnItemLongClickListener
界面,然后你可以添加onItemLongClick()
方法重写,其作用就像onListItemClick()
方法覆盖您已有的,但响应长点击。
只需确保您遵循以下指示即可这个答案,你必须使用android:longClickable="true"
在布局 xml 中,或者调用listview.setLongClickable(true);
Example:
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();
}
//....................