我正在构建一个简单的应用程序,它存储一些联系人并在 android 手机设备中检索联系人。
我已经创建了自己的数据库和表,并将值插入到手机中的表中。
我的手机没有root。所以我无法访问这些文件,但我看到值存储在表中。并在模拟器上进行了测试。到这里为止还好。
通过从表中获取数据来显示列表中的所有联系人。这也很好。
但问题是当我试图删除记录时,它在logcat中显示表名为空(不是异常),并且数据没有被删除。但是在模拟器中,数据正在从表中删除。我无法通过电话实现这一目标。
这是我的删除代码,
public boolean onContextItemSelected(MenuItem item) {
super.onContextItemSelected(item);
AdapterView.AdapterContextMenuInfo info = (AdapterView.AdapterContextMenuInfo) item
.getMenuInfo();
int menuItemIndex = item.getItemId();
String[] menuItems = getResources().getStringArray(R.array.menu);
String menuItemName = menuItems[menuItemIndex];
String listItemName = Customers[info.position];
if (item.getTitle().toString().equalsIgnoreCase("Delete")) {
Toast.makeText(
context,
"Selected List item is: " + listItemName + "MenuItem is: "
+ menuItemName, Toast.LENGTH_LONG).show();
DB = context.openOrCreateDatabase("CustomerDetails.db",
MODE_PRIVATE, null);
try {
int pos = info.position;
pos = pos + 1;
Log.d("", "customers[pos]: " + Customers[info.position]);
Cursor c = DB
.rawQuery(
"Select customer_id,first_name,last_name from CustomerInfo",
null);
int rowCount = c.getCount();
DB.delete(Table_name,
"customer_id" + "=" + String.valueOf(pos), null);
DB.close();
Log.d("", "" + String.valueOf(pos));
Toast.makeText(context, "Deleted Customer", Toast.LENGTH_LONG)
.show();
// Customers[info.position]=null;
getCustomers();
} catch (Exception e) {
Toast.makeText(context, "Delete unsuccessfull",
Toast.LENGTH_LONG).show();
}
}
这是我的日志猫,
07-02 10:12:42.976: D/Cursor(1560): Database path: CustomerDetails.db
07-02 10:12:42.976: D/Cursor(1560): Table name : null
07-02 10:12:42.984: D/Cursor(1560): Database path: CustomerDetails.db
07-02 10:12:42.984: D/Cursor(1560): Table name : null
不知道数据没有被删除的原因。数据存在于表中。
请更正我的代码。任何帮助表示赞赏!