在调用onItemClick
时,我不想呼叫onItemLongClick
。
我正在使用SlideAndDragListView
并仅在onItemLongClick
中返回true。
matchedUsersListView.setOnItemLongClickListener(new AdapterView.OnItemLongClickListener() {
@Override
public boolean onItemLongClick(AdapterView<?> parent, View view, int position, long id) {
InviteMatchedUsersFragment.this.onItemLongClick(parent,view,position,id);
return true;
}
});
@Override
public void onItemLongClick(AdapterView<?> parent, View view, int position, long id) {
ImageView view1 = (ImageView) view.findViewById(position);
matchedPassengersAdapter.onUserClick(view1, position);
}
在OnItemClick
中,我的做法有所不同
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
Log.d(LOG_TAG, "onMatchedUserSelection()");
if(matchedPassengersAdapter.getSelectedPassengersCount() != 0)
{
ImageView view1 = (ImageView) view.findViewById(position);
matchedPassengersAdapter.onUserClick(view1, position);
}
else {
//onItemClickGoesHere
}
}
@Override
public void onItemLongClick(AdapterView<?> parent, View view, int position, long id) {
ImageView view1 = (ImageView) view.findViewById(position);
matchedPassengersAdapter.onUserClick(view1, position);
}
答案 0 :(得分:0)
这可能对您有帮助
参考:Set long click listener for listview
您的问题与this one非常相似,但看起来并非完全相同。
您已经注意到,ListActivity类没有专门针对这种情况的方法覆盖。
为了将此功能添加为方法覆盖,您的类应实现AdapterView.OnItemLongClickListener接口,然后可以添加onItemLongClick()方法覆盖,其作用与已具有的onListItemClick()方法覆盖一样,但响应长点击。
只要确保您遵循this answer中的说明,就必须在布局xml中使用android:longClickable =“ true”,或调用listview.setLongClickable(true);
Ex
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();
}
//....................