0

私はすでにListViewにcontextmenuコードを設定しており、リストビューからアイテムを長押しした場所から位置を取得するためにadaptercontextinfoをすでに行っているので、私の問題は、を使用してそのアイテムのメンバーまたはビューにアクセスする方法ですアダプタコンテキスト情報

public void onCreateContextMenu(ContextMenu menu, View v,
    ContextMenuInfo menuInfo) {
super.onCreateContextMenu(menu, v, menuInfo);
MenuItem edit = menu.add("Edit");
MenuItem delete = menu.add("Delete");

edit.setOnMenuItemClickListener(new OnMenuItemClickListener() {

        public boolean onMenuItemClick(MenuItem item) {
            AdapterContextMenuInfo info = (AdapterContextMenuInfo) item.getMenuInfo();
            Toast toast = Toast.makeText(PatientActivity.this, Long.toString(info.id), Toast.LENGTH_LONG);
            toast.show();
            return true;
        }
    });
}

だから私の質問は、私が長い間クリックしたそのアイテムのビューにどのようにアクセスするのですか..

ここに画像の説明を入力

その写真の名前の上にある小さな数字にアクセスしたかった..長い間クリックした場所からの位置をすでに決定しています..しかし、クリックしたものにアクセスする方法がわかりません

4

1 に答える 1

1

AdapterContextMenuInfoから行のレイアウトにアクセスする場合は、以下を使用しますinfo.targetView。これとfindViewById()を使用して、レイアウトの左上にある数値を取得できます。

質問のメンバーが何を意味するのかわかりませんが、必要な番号がSQLiteDatabaseの主キーのようなIDである場合は、次のように使用できますinfo.id

また、個々のonMenuItemClickListenersを作成する代わりに、アクティビティとフラグメントで使用可能なonContextItemSelected()メソッドを使用することを検討してください。(リスナーの後にリスナーを作成するよりも作業が少なくて済みます。)

于 2012-08-12T16:37:17.523 に答える