データベースのリストにコンテキストメニューを使用するAndroidアプリを構築しています。私はそれがすべて正常に働いていた、マップを使用するアプリケーションのセクションを構築するに移動し、今(私はレベル10アンドロイドのGoogleエミュレータに切り替えている)私は2つの問題が湧き出た。最初は十分に速く修正されましたが、私のコンテキストメニューは表示されなくなりました。それは、エミュレータの変化とは何かだ場合、私は知らないが、ここに私のコードは次のとおりです。Androidのコンテキストメニューがエミュレータに表示されなくなった
の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);
}
また、通常のプレスクリックLISTEについて私はこれを使用します:
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メソッドが、私はそれを得ることはありません。繰り返しますが、私はコードに変更を加えませんでしたが、長いクリックは何もしません。何か案は?
おかげ
onLongClick、getListViewなどと任意のためのあなたのコードを投稿してください。 logcatエラーも同様です。 – Sam
私はonLongClickコードを持っておらず、エラーもありません。私はクリックリスナー - 'v.setOnClickListener(新しいOnItemClickListener(position));' - 各リスト項目をクリックすることもできます。しかし、もう一度、このコードだけで1週間前に動作するには十分でした... onLongClickコードをいくつか追加する必要がありますか? –
具体的には、コードが矛盾していないことを確認したいと思います。最近あなたのプロジェクトをきれいにしましたか? OnCreateContextMenuに 'super.onCreateContextMenu(menu、v、menuInfo); 'を追加するとヘルプが表示されますか? – Sam