データベースのリストでコンテキスト メニューを使用する Android アプリを作成しています。私はそれをすべて正常に動作させ、マップを使用するアプリのセクションの構築に移りましたが、現在 (レベル 10 の Android Google エミュレーターに切り替えている間) 2 つの問題が発生しました。最初のものはすぐに修正されましたが、コンテキスト メニューが表示されなくなりました。エミュレータの変更と関係があるかどうかはわかりませんが、私のコードは次のとおりです。
onCreate には次のものがあります。
super.onCreate(savedInstanceState);
datasource = new DiaryDataSource(this);
datasource.open();
List<DiaryEntry> values = datasource.getAllDiaryEntries();
DiaryScheduleAdapter adapter = new DiaryScheduleAdapter(this,values);
setListAdapter(adapter);
registerForContextMenu(getListView());
次に、ArrayAdapter を拡張する私のクラスには次のものがあります。
@Override
public View getView(int position, View convertView, ViewGroup parent)
{
DiaryEntry diaryEntry = getItem(position);
View v = convertView;
if ( v == null )
{
v = li.inflate(R.layout.diary_schedule, null);
}
**** TextViews etc ****
v.setOnClickListener(new OnItemClickListener(position));
return v;
そして onCreateContextMenu:
@Override
public void onCreateContextMenu(ContextMenu menu, View v, ContextMenu.ContextMenuInfo menuInfo)
{
super.onCreateContextMenu(menu, v, menuInfo);
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.diary_context_menu, menu);
}
また、通常のプレス クリック リスナーには、次のように使用します。
private class OnItemClickListener implements OnClickListener
{
private int mPosition;
OnItemClickListener(int position)
{
mPosition = position;
}
@Override
public void onClick(View v)
{
**** various bits of code to set up intent ****
startActivity(descIntent);
}
}
そしてその下に onContextItemSelected メソッドがありますが、そこまでは行きません。繰り返しますが、コードに変更を加えていないことは確かですが、長押ししても何も起こりません。何か案は?
ありがとう