4

我正在android中创建一个应用程序。我正在使用列表视图。现在我想同时使用点击事件和长点击事件。如果可能的话可以帮我做。

4

7 回答 7

10

你只需要返回true

list.setOnItemLongClickListener(new OnItemLongClickListener() {

    @Override
    public boolean onItemLongClick(final AdapterView<?> p, View v,final int po, long id) {

        // your code

    return true;
    }    
});

它基本上告诉系统已经处理了长按事件(默认为false),不需要处理进一步的事件(即单次按下,在长按事件中会无意中发生)

于 2014-02-07T15:31:38.970 回答
4

看到这个

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);
        }
    });
于 2012-06-28T12:23:57.347 回答
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);
}
于 2012-06-28T12:28:25.633 回答
2

使用 ListView.setOnItemClickListener(listener) 和 ListView.setOnItemLongClickListener(listener) http://developer.android.com/guide/topics/ui/layout/listview.html

于 2012-06-28T12:21:55.287 回答
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)
    {

    }
});
于 2012-06-28T12:23:20.810 回答
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;
}
于 2012-06-28T12:24:29.013 回答
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; }});
于 2016-04-18T11:42:06.663 回答