我对Android很陌生,我有一个小问题。 我的ContextMenu出了问题。我已经用我的数据库条目填充了我的ListView,现在我的魔杖如果我长按它,则会弹出ContextMenu并且我想要删除或编辑我的数据库条目: 但我不明白我怎么能知道它是什么。
这是我的代码..
package de.retowaelchli.filterit.stats;
import de.retowaelchli.filterit.R;
import de.retowaelchli.filterit.database.ADFilterDBAdapter;
import android.app.ListActivity;
import android.database.Cursor;
import android.os.Bundle;
import android.view.ContextMenu;
import android.view.ContextMenu.ContextMenuInfo;
import android.view.MenuItem;
import android.view.View;
import android.widget.AdapterView;
import android.widget.SimpleCursorAdapter;
public class CreatedADFilters extends ListActivity {
//Variablen deklaration
private ADFilterDBAdapter mDbHelper;
public void onCreate(Bundle icicle) {
super.onCreate(icicle);
//Kontext-Menu registrieren
registerForContextMenu(findViewById(R.layout.list_layout));
//Hier wir die Datenbank aufgerufen
mDbHelper = new ADFilterDBAdapter(this);
mDbHelper.open();
fillData();
}
private void fillData() {
// Get all of the notes from the database and create the item list
Cursor c = mDbHelper.getAllADFilter();
startManagingCursor(c);
String[] from = new String[] { ADFilterDBAdapter.NAME, ADFilterDBAdapter.ROW_ID };
int[] to = new int[] { R.id.label };
// Now create an array adapter and set it to display using our row
SimpleCursorAdapter adname =
new SimpleCursorAdapter(this, R.layout.list_layout, c, from, to);
setListAdapter(adname);
mDbHelper.close();
}
//ContextMenu erstellen und definieren
public void onCreateContextMenu(ContextMenu menu, View v, ContextMenuInfo menuInfo) {
if (v.getId() == R.layout.list_layout) {
getMenuInflater().inflate(R.menu.createdadmenu, menu);
}
super.onCreateContextMenu(menu, v, menuInfo);
}
public boolean onContextItemSelected(MenuItem item) {
final AdapterView.AdapterContextMenuInfo info =
(AdapterView.AdapterContextMenuInfo) item.getMenuInfo();
switch (item.getItemId()) {
case R.id.delete_adfilter: {
deleteAD();
return true;
}
case R.id.edit_adfilter:{
editAD();
return true;
}
return super.onContextItemSelected(item);
}
}
// THIS IS THE PART I DONT KNOW HOW TO REALIZE
private void deleteAD(){
}
private void editAD(){
}
}
Thx for you提前帮助!
最好的问候
狩猎
答案 0 :(得分:1)
info
中的onContextItemSelected()
本地变量有一个id
数据成员,其中包含_ID
中的Cursor
值。 Here is a sample project演示了如何使用它根据ListView
上下文菜单删除项目。