2013-01-08 28 views
-1

可能重复:
How to Get Row values in Context menu using cursor?如何在上下文菜单中获取行值

我创建了一个ContextMenu并用下面的代码:

public boolean onContextItemSelected(MenuItem item){ 

      switch(item.getItemId()) 
      { 

      case R.id.Show_Note: 

       //AdapterView.AdapterContextMenuInfo info= (AdapterView.AdapterContextMenuInfo)item.getMenuInfo(); 

       Intent i=new Intent(this, ShowNote.class); 
        Cursor c = (Cursor) getListView().getItemAtPosition(position); 
        int item_id = c.getInt(0); 
        i.putExtra("item_id", item_id); 
        startActivity(i); 

       break 

它返回第一按任何列表项,每次都可以查看行值。请建议,如何获得按下的行值。

回答

0

我认为你必须在指定的位置移动你的光标。从它获取数据之前。

c.moveToPosition(position); 

在代码中加入这一行,让我知道发生什么事..

你的代码是这样的:

Intent i = new Intent(this, ShowNote.class); 
Cursor c = (Cursor) getListView().getItemAtPosition(position); 
c.moveToPosition(position); // This line need to be added here 
int item_id = c.getInt(0); 
i.putExtra("item_id", item_id); 
startActivity(i); 
+0

是的,谢谢...还可以请你让我知道如何我可以删除该行吗?因为我有数据库方法以及如何在上下文菜单中调用delete方法? – Shweta

+0

谢谢,你可以让我知道如何删除行??? – Shweta

+0

你有写数据库的删除查询吗? – user370305

0

如何设置位置?

为了获得在列表视图中的位置,你可以将以下两行添加到您的项目选择方法的开头:

public boolean onContextItemSelected(MenuItem item) { 
     AdapterContextMenuInfo info = (AdapterContextMenuInfo) item.getMenuInfo(); 
     int position = info.position; 

     switch(item.getItemId()) 
       { 

       case R.id.Show_Note: 

        //AdapterView.AdapterContextMenuInfo info= 
        (AdapterView.AdapterContextMenuInfo)item.getMenuInfo(); 

        Intent i=new Intent(this, ShowNote.class); 
         Cursor c = (Cursor) getListView().getItemAtPosition(position); 
         int item_id = c.getInt(0); 
         i.putExtra("item_id", item_id); 
         startActivity(i); 

        break 
    } 
+0

嗨,谢谢是的,你可以告诉我删除笔记。如何使用上下文菜单删除一行。 – Shweta

相关问题