データベースとユーザー設定から入力されたエンティティに基づいてテキストを配置する TextViews で LinearLayout をプログラムで入力しています。
私は現在、これらの TextViews のそれぞれにコンテキスト メニューを追加して、ユーザーがその特定のエントリ (およびオブジェクト、したがって db 行) を削除できるようにしようとしています。
長押ししてコンテキストメニューを開くことはできますが、メニューに関連付けられている TextView の ID を取得する方法がわかりません。
これに関する事実上すべての情報は ListViews を参照しており (私は使用していません - ScrollView 内に ListView があると問題がありました)、多くの情報は Adapters を参照しています (私は使用していません。前にデータを徹底的にマッサージする必要があります)。見栄えがする)。
LinearLayout は XML で指定されます。DB ルックアップを行う AsyncTask の onPostExecute に TextViews を追加しています。
Activity.registerForContextMenu(TextView) と textView.setOnCreateOptionsMenuListener(new ...) の 2 つの方法でコンテキスト メニューを登録しようとしました。
問題は次の部分です。
@Override
public boolean onContextItemSelected(MenuItem item) {
ContextMenuInfo info = (ContextMenuInfo) item.getMenuInfo();
switch (item.getItemId()) {
case R.id.delete_entry:
// how do I get the TextView id here???
return true;
default:
return super.onContextItemSelected(item);
}
}
ContextMenuInfo 変数は null であり、役に立ちません。