2016-01-17 25 views
0

我正在創建一個帶有ListView的簡單對話框。我想能夠訪問它上下文菜單。這裏是基本的代碼中,我:onContextItemSelected未使用帶有ListView的對話框調用

final Dialog dialog = new Dialog(context); 
    dialog.setContentView(R.layout.activity_lista); 
    dialog.setTitle("Contact"); 
    ListView lv = (ListView) dialog.findViewById(R.id.listView); Cursor cursor = db.readData(); 
            String[] from = new String[]{DatabaseHandler.KEY_contacts, DatabaseHandler.KEY_number}; 
             int[] to = new int[]{R.id.contacts, R.id.number}; 
             @SuppressWarnings("deprecation") 
             final 
             SimpleCursorAdapter adapter = new SimpleCursorAdapter(Home.this, R.layout.show, cursor, from, to); 
             adapter.notifyDataSetChanged(); 
             lv.setAdapter(adapter); 
             registerForContextMenu(lv); 

這裏的方法onCreateContextMenu:

@Override 
public void onCreateContextMenu(ContextMenu menu, View v,ContextMenu.ContextMenuInfo menuInfo) { 
    super.onCreateContextMenu(menu, v, menuInfo); 
    getMenuInflater().inflate(R.menu.menu_context, menu); 

} 

最後我重寫onContextItemSelected:

@Override 
public boolean onContextItemSelected(MenuItem item) { 

    switch (item.getItemId()) { 
     case R.id.call: 
      Toast.makeText(this,"call" ,Toast.LENGTH_LONG).show(); 
      return true; 

     case R.id.sms: 
      Toast.makeText(this,"sms" ,Toast.LENGTH_LONG).show(); 
      return true; 

     case R.id.delete: 
      Toast.makeText(this,"delete" ,Toast.LENGTH_LONG).show(); 
      return true; 
     default: 
      return super.onContextItemSelected(item); 
    } 
} 

我試過也覆蓋setOnMenuItemClickListener( )裏面onContextItemSelected()

但我的問題仍然不是solv編輯:(任何幫助?

回答

0

您可以使用此方法

lv.setOnItemClickListener(new AdapterView.OnItemClickListener() { 
    @Override 
    public void onItemClick(AdapterView<?> parent, View view, int position, long id) { 
     Object listItem = lv.getItemAtPosition(position); 
    } 
}); 
+0

你說的是什麼意思拿到項目「列表中。」你的意思是listview「lv」? – mohammed