1. 程式人生 > >listView item新增長按選單,並對選單做出響應

listView item新增長按選單,並對選單做出響應

1.//新增長按點選    
    listView.setOnCreateContextMenuListener(new OnCreateContextMenuListener() {    
            
@Override
public void onCreateContextMenu(android.view.ContextMenu menu, View v,
ContextMenuInfo menuInfo) {
menu.setHeaderTitle("確定刪除?");       
           menu.add(0, 0, 0, "OK");    
           menu.add(0, 1, 0, "Cancel");  
           menu.add(0,2,0,"update");

}    

    });   

其中,menu.add()的四個引數分別為:

第一個int型別的group ID引數,代表的是組概念,你可以將幾個選單項歸為一組,以便更好的以組的方式管理你的選單按鈕。
第二個int型別的item ID引數,代表的是專案編號。這個引數非常重要,一個item ID對應一個menu中的選項。在後面使用選單的時候,就靠這個item ID來判斷你使用的是哪個選項。
第三個int型別的order ID引數,代表的是選單項的顯示順序。預設是0,表示選單的顯示順序就是按照add的顯示順序來顯示。

第四個String型別的title引數,表示選項中顯示的文字。

2.重寫activity的onContextItemSelected(MenuItem item)方法

@Override  
public boolean onContextItemSelected(MenuItem item) {  
    // TODO Auto-generated method stub  
    ContextMenuInfo menuInfo = (ContextMenuInfo) item.getMenuInfo();       
       AdapterView.AdapterContextMenuInfo info = (AdapterView.AdapterContextMenuInfo)item.getMenuInfo();   

//info.id獲得listview中點選的哪一項
      int id=(int)info.id;
         
    switch(item.getItemId())  
    {  
   //刪除

    case 0:  
        ListView templist = listView;  
        View mView = templist.getChildAt(id);  
        TextView textView=(TextView)mView.findViewById(R.id.text1);
        String string=textView.getText().toString();


       String[] s=string.split(" ");
       GoodsInfoEntity goodsInfoEntity=new GoodsInfoEntity();
       goodsInfoEntity.setUbid("123456");
       goodsInfoEntity.setTakegoods_name(s[0]);
       goodsInfoEntity.setTakegoods_telephone(s[2]);
       goodsInfoEntity.setCountry(s[4]);
       goodsInfoEntity.setArea(s[5]);
       goodsInfoEntity.setDetailAddress(s[6]);
       myAdapter.remove(id);
       goodInfoDao.deleteSimpleData(goodsInfoEntity);
        break;  
    //取消

    case 1:  
        break;  
    }  
    return super.onContextItemSelected(item);  
}