2

こんにちは、onContextItemSelected() でデータベースから id のようなリストで定義されたフィールドの値を取得できるか知りたいですか? コンテキストメニューを作成するための私のコードは以下に固定されています。助けてください、thnx

 public boolean onContextItemSelected(MenuItem item) {

    AdapterView.AdapterContextMenuInfo info = (AdapterView.AdapterContextMenuInfo) item.getMenuInfo();
    long clickedPosition = info.id;

    switch (item.getItemId()) {
    case NEW_MENU_ITEM:
        //callActivity(1);
        break;
    case SAVE_MENU_ITEM:
        //callActivity(2);
        break;
    }
    return super.onContextItemSelected(item);
}
@Override
public void onCreateContextMenu(ContextMenu menu, View view, ContextMenuInfo menuInfo) {
    super.onCreateContextMenu(menu, view, menuInfo);
    menu.setHeaderTitle("Options");
    menu.add(0, NEW_MENU_ITEM, 0, "Delete");
    menu.add(0, SAVE_MENU_ITEM, 1, "Rename");
}

次のコードは私のIDをデータベースから削除しません

long clickedPosition = info.id;
4

4 に答える 4

2
 @Override
public boolean onContextItemSelected(MenuItem item) {
    AdapterView.AdapterContextMenuInfo info = (AdapterView.AdapterContextMenuInfo) item.getMenuInfo();

    Object obj = getListView().getItemAtPosition(info.position);
    String name = obj.toString();

}
于 2015-10-11T17:10:29.430 に答える
0

;を追加int id= info.position することで、このリスト内の要素の位置を取得できます 。onContextItemSelected

それが役に立てば幸い

于 2014-01-21T19:58:43.670 に答える
0

そのフィールドに返される値は、アダプターの実装に完全に依存します。これは、アダプターで返される値であるidに渡されるものと同じです。OnItemClickListenergetItemId()

またはその変形を使用CursorAdapterしてリストにデータを提供している_id場合、このメソッドを変更していない限り、列はデフォルトで返される値です。のArrayAdapter場合はそうではなく、必要な ID を返すコードを追加する必要があります。単一の よりも複雑なデータを返す必要がある場合は、 を使用intしてリスト アイテム ビューにタグを設定し、がパラメータの 1 つであるため、からsetTag()取得できます。ContextMenuInfotargetView

于 2012-09-21T20:40:05.770 に答える