私はこれを動作させることができません。私は多くの投稿を見てきました。そして、明後日までこれを終了しなければならないので、本当に絶望的です。問題は次のとおりです。contextMenuから選択した項目のIDは常に0です
私はデータベースのエントリを持つlistViewを持っています。コンテキストメニューを呼び出すには、それらを長時間クリックすることができます。コンテキストメニューでは、エントリを削除または編集することができます。これを行うには、選択したアイテムのIDが必要です。
@Override
public void onCreateContextMenu(ContextMenu menu, View v,
ContextMenuInfo menuInfo) {
super.onCreateContextMenu(menu, v, menuInfo);
MenuInflater inflater2 = getMenuInflater();
inflater2.inflate(R.menu.edit_grade_menu, menu);
}
@Override
public boolean onContextItemSelected(MenuItem item) {
AdapterContextMenuInfo info = (AdapterContextMenuInfo) item.getMenuInfo();
int id = (int) info.id;
switch (item.getItemId()) {
case R.id.edit_grade:
Intent i = new Intent(this, AddGradeActivity.class);
i.putExtra(GradesDbAdapter.KEY_ROWID, linkSubject);
// putExtra edit, so addGradeActivity knows it has to fill views with values to edit grade
i.putExtra("edit", true);
i.putExtra(GradesDbAdapter.KEY_GRADE, id);
this.startActivity(i);
finish();
return true;
case R.id.del_grade:
myDbHelper.deleteGradeEntry(id, semester);
// filldata to refresh listview
fillData();
return true;
default:
return super.onContextItemSelected(item);
}
}
今私の問題は、私は情報から取得し、このIDはいつも私がレイアウトを変更する前に、それが働いているので、それは本当に奇妙だ0であるということです、私は、同じ画面上の2つのタブで実行されているこの同じ活性を有しています。これが理由だろうか?
item.getItemId()が間違った値を返しますか?またはitem.id?このリンクメイトhttp://stackoverflow.com/questions/2453620/android-how-to-find-the-position-clicked-from-the-context-menuを確認していない –
info.idを()は0を返し、関係なく、どの私が選んだエントリー。 –
はあなたが –