Java Android Listview删除SQLite行使用上下文菜单
我为android开发了一个应用程序:p 所以我有一个带有上下文菜单的列表视图。上下文菜单中有一个删除行的按钮!所以我看了很多教程,但没有人能帮我:/ MainActivity.javaJava Android Listview删除SQLite行使用上下文菜单,java,android,Java,Android,我为android开发了一个应用程序:p 所以我有一个带有上下文菜单的列表视图。上下文菜单中有一个删除行的按钮!所以我看了很多教程,但没有人能帮我:/ MainActivity.java lv = (ListView) findViewById(R.id.memberList_id); registerForContextMenu(lv); } @Override public void onCreateCont
lv = (ListView) findViewById(R.id.memberList_id);
registerForContextMenu(lv);
}
@Override
public void onCreateContextMenu(ContextMenu menu, View v, ContextMenuInfo menuInfo) {
super.onCreateContextMenu(menu, v, menuInfo);
if (v.getId()==R.id.memberList_id) {
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.menu_list, menu);
}
}
@Override
public boolean onContextItemSelected(MenuItem item) {
AdapterContextMenuInfo info = (AdapterContextMenuInfo) item.getMenuInfo();
switch(item.getItemId()) {
case R.id.bearbeiten:
memI
D_tv = (TextView)findViewById(R.id.member_id);
memName_tv = (TextView)findViewById(R.id.member_name);
String memberID_val = memID_tv.getText().toString();
String memberName_val = memName_tv.getText().toString();
Intent modify_intent = new Intent(getApplicationContext(),
Modify_member.class);
modify_intent.putExtra("memberName", memberName_val);
modify_intent.putExtra("memberID", memberID_val);
startActivity(modify_intent);
return true;
case R.id.löschen:
dbcon.deleteData(member_id);
return true;
default:
return super.onContextItemSelected(item);
}
}
DBhelper.java
package com.studiocrew.lehrstellekontrolle;
import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
public class DBhelper extends SQLiteOpenHelper {
// TABLE INFORMATTION
public static final String TABLE_MEMBER = "member";
public static final String MEMBER_ID = "_id";
public static final String MEMBER_NAME = "name";
// DATABASE INFORMATION
static final String DB_NAME = "MEMBER.DB";
static final int DB_VERSION = 1;
// TABLE CREATION STATEMENT
private static final String CREATE_TABLE = "create table "
+ TABLE_MEMBER + "(" + MEMBER_ID
+ " INTEGER PRIMARY KEY AUTOINCREMENT, "
+ MEMBER_NAME + " TEXT NOT NULL);";
public DBhelper(Context context) {
super(context, DB_NAME, null,DB_VERSION);
}
@Override
public void onCreate(SQLiteDatabase db) {
db.execSQL(CREATE_TABLE);
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
// TODO Auto-generated method stub
db.execSQL("DROP TABLE IF EXISTS " + TABLE_MEMBER);
onCreate(db);
}
}
您只需要一个对listview正在使用的适配器的引用。如果在获取对所选对象的引用时遇到问题,可以创建一个自定义适配器,用于获取当前所选项目。 所以你会有这样的想法: adapter.removeadapter.getSelectedItem;
然后可以使用对该项的相同引用将其从数据库中删除 你到底有什么问题?@JoeBauer我想用contextmenu删除listview行。