簡體   English   中英

如何在單個列表視圖中實現長按一下監聽器和onclicklistener

[英]how to implement a long click listener and onclicklistener in single listview

我在android中創建一個應用程序。 在那我正在使用列表視圖。 現在我想要同時使用點擊事件和長按事件。 如果有可能可以幫助我做。

你只需要返回true

list.setOnItemLongClickListener(new OnItemLongClickListener() {

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

        // your code

    return true;
    }    
});

它基本上告訴系統已經處理了Long press事件(默認為false ),並且不需要處理其他事件(即單次按下,這在長按事件中無意中會發生)

看到這個

單擊並長按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);
        }
    });

您應該使用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);
}

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

只需在listview上使用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)
    {

    }
});

使用以下代碼。

    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;
}

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; }});

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM