2012-02-28 123 views
0

我有自定义对话框,其中包含一个列表视图。当我长按对话框中的列表项时,我想要一个上下文菜单。上下文菜单出现,但没有任何反应,当我点击它的任何项目。我提供了在单击上下文菜单项时执行的操作,但没有任何反应。任何人都可以帮忙吗?列表视图内部对话框的上下文菜单android

 final ArrayList<ListClass> listItem = coreData_.listItem_; 

    LayoutInflater inflater = (LayoutInflater) 
      GUI.this.getSystemService(LAYOUT_INFLATER_SERVICE); 
    View layout = inflater.inflate(R.layout.scanlist, 
        (ViewGroup) findViewById(R.id.scan_dialog)); 
    AlertDialog.Builder builder = 
      new AlertDialog.Builder(GUI.this); 
    builder.setView(layout); 

    scanListView_ = (ListView) 
      layout.findViewById(R.id.scan_list_view); 

    registerForContextMenu(scanListView_); 

    scanListView_.setOnCreateContextMenuListener(this); 

    scanListView_.setBackgroundColor(Color.rgb(0, 0, 0));    

    scanListView_.setAdapter(
      new EfficientAdapter(getApplicationContext(), 
         listItem)); 

    scanListView_.setOnItemClickListener(new OnItemClickListener(){ 

     public void onItemClick(AdapterView<?> arg0, View arg1, 
       int position, long arg3) { 

      //perform list item click actions 
     } 

    }); 

    builder.setNegativeButton("Cancel", 
      new DialogInterface.OnClickListener() { 

     @Override 
     public void onClick(DialogInterface dialog, int which) { 
      // TODO Auto-generated method stub 
      //dismiss 
     } 
    }); 

    availNetDialog_ = builder.create(); 
    availNetDialog_.setTitle("Available Networks"); 
    availNetDialog_.show(); 
+0

Plz在上面讨论的项目上发布代码。 – maebe 2012-02-28 11:43:47

+0

我用代码编辑了它 – 2012-03-12 06:00:05

回答

1
public void onCreateContextMenu(ContextMenu menu, View v, ContextMenu.ContextMenuInfo menuInfo) { 
    super.onCreateContextMenu(menu, v, menuInfo); 
    // second argument show what item was selected 
    menu.add(0, 0, 1, "Delet Row").setOnMenuItemClickListener(new MenuItem.OnMenuItemClickListener() { 
     @Override 
     public boolean onMenuItemClick(MenuItem item) { 
      if (item.getItemId() == 0) { 
       // get item id from listView if needed 
       AdapterView.AdapterContextMenuInfo acmi = (AdapterView.AdapterContextMenuInfo) item.getMenuInfo(); 
       // extract id and transfer it to another method delRec 
       delRec(acmi.id); 
       //init(); 
       return true; 
      } 
      return false; 
     } 
    }); 
} 

综上所述只是setOnMenuItemClickListener和@Override onMenuItemClick。 希望它有帮助:)

相关问题