-1

重複の可能性:
カーソルを使用してコンテキスト メニューで行の値を取得する方法は?

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

リスト項目を押すと、毎回最初の行の値が返されます。押された行の値を取得する方法を提案してください。

4

2 に答える 2

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);
于 2013-01-08T10:08:50.073 に答える
0

ポジションはどのように設定されますか?

リスト ビューでの位置を取得するには、項目選択メソッドの先頭に次の 2 行を追加します。

  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
    }
于 2013-01-08T10:34:09.813 に答える