2013-01-08 32 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

相關問題