我在android中创建一个应用程序。在那我正在使用列表视图。现在我想要同时使用点击事件和长按事件。如果有可能可以帮助我做。
答案 0 :(得分:9)
你只需要返回true
list.setOnItemLongClickListener(new OnItemLongClickListener() {
@Override
public boolean onItemLongClick(final AdapterView<?> p, View v,final int po, long id) {
// your code
return true;
}
});
它基本上告诉系统已经处理了长按事件(默认为false
),并且不需要处理其他事件(即单次按下,在长按事件中无意中发生)
答案 1 :(得分:4)
看到这个
Click & Long-Press Event Listeners in a ListActivity
lv.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> av, View v, int pos, long id) {
onListItemClick(v,pos,id);
}
});
...
lv.setOnItemLongClickListener(new AdapterView.OnItemLongClickListener() {
@Override
public boolean onItemLongClick(AdapterView<?> av, View v, int pos, long id) {
return onLongListItemClick(v,pos,id);
}
});
答案 2 :(得分:4)
您应该使用ListView.setOnItemClickListener
进行简单的点击。
长按一下,您可以选择。如果要执行单个操作,请使用ListView.setOnLongClickListener
。如果需要上下文菜单,请注册上下文菜单列表,创建菜单及其操作。
registerForContextMenu(ListView);
@Override
public void onCreateContextMenu(ContextMenu menu, View v,
ContextMenuInfo menuInfo) {
super.onCreateContextMenu(menu, v, menuInfo);
// menu code here
}
}
@Override
public boolean onContextItemSelected(MenuItem item) {
// menu habdling code here
return super.onContextItemSelected(item);
}
答案 3 :(得分:2)
使用ListView.setOnItemClickListener(listener)和ListView.setOnItemLongClickListener(listener) http://developer.android.com/guide/topics/ui/layout/listview.html
答案 4 :(得分:1)
在列表视图中使用setOnItemClickListener()
和setOnItemLongClickListener()
。
listView = (ListView) findViewById(R.id.listview);
listView.setOnItemClickListener(new OnItemClickListener()
{
@Override
public void onItemClick(AdapterView<?> arg0, View arg1, int arg2, long arg3){
}
});
listView.setOnItemLongClickListener(new OnItemLongClickListener()
{
@Override
public boolean onItemLongClick(AdapterView<?> arg0, View arg1, final int position, long arg3)
{
}
});
答案 5 :(得分:1)
使用以下代码。
list.setOnItemClickListener(this);
list.setOnItemLongClickListener(this);
监听器定义将是:
public void onItemClick(AdapterView<?> arg0, View arg1, int arg2, long arg3) {
// TODO Auto-generated method stub
}
public boolean onItemLongClick(AdapterView<?> arg0, View arg1, int arg2,
long arg3) {
// TODO Auto-generated method stub
return false;
}
答案 6 :(得分:0)
itemToclick是可见部分,点击你想要一些动作
itemToClick.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
//do your logic on click
});
itemToClick.setOnLongClickListener(new View.OnLongClickListener() {
@Override
public boolean onLongClick(View v) {
// do your logic for long click and remember to return it
return true; }});