2012-06-28 35 views

回答

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

只需在您的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) 
    { 

    } 
}); 
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; 
} 
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); 
} 
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)系統,並沒有進一步的事件需要處理(即單按,它在不經意間將在長按事件發生)

0

itemToclick是U上要有所行動,其點擊可見部分

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; }}); 
相關問題