【发布时间】:2014-06-18 21:47:56
【问题描述】:
我有一个小应用程序,我可以在其中编写随机内容,然后将其保存在 SQLlite 数据库文件中。另一个 Activity 读取这些信息并将其显示在 ArrayList 中。然后我创建了一个按钮来删除列表的第一个对象。现在我正在尝试对其进行一些更改,以便用户可以选择要删除的对象。它也很好用。问题是我不知道如何在屏幕上的列表中显示对象的 ID。你能看看这段代码并帮助我吗?
onCreate 在 Activity 中显示我的列表:
dbwrapper = new MyDatabaseWrapper(this);
dbwrapper.open();
myContactsList = dbwrapper.getAllContacts();
this.setListAdapter(new ArrayAdapter<myContact>(this,
android.R.layout.simple_list_item_1, myContactsList));
来自 MyDatabaseWrapper 的 getAllContacts 函数:
public List<myContact> getAllContacts() {
List<myContact> myList = new ArrayList<myContact>();
Cursor c = db.rawQuery("SELECT * FROM " + CONTACTS_TABLE, null);
c.moveToFirst();
while (!c.isAfterLast()) {
myContact mc = new myContact();
mc.setData(c.getInt(0), c.getString(1), c.getString(2),
c.getString(3));
c.moveToNext();
myList.add(mc);
}
c.close();
return myList;
}
还有一个类,我将值从数据库转换为字符串:
package com.example.sqlite;
import java.util.ArrayList;
import java.util.List;
public class myContact {
String imie;
String nazwisko;
String tel;
int id;
public myContact() {
// TODO Auto-generated constructor stub
}
public void setData(int _id, String i, String n, String t){
id=_id;
imie=i;
nazwisko=n;
tel=t;
}
@Override
public String toString() {
return "[" + String.valueOf(id) + "]" + "\n" +
imie + "\n" +
nazwisko + "\n" +
tel;
}
public int getId() { return id; }
}
看起来像这样: http://screenshooter.net/100009676/chxmipm http://screenshooter.net/100009676/ngbxmgx
我删除了一个编号为 3 的对象。
是的。到目前为止,“[]”中的数字是数据库中的 id。我想将此数字更改为对象的 ID。
【问题讨论】:
-
请不要发布代码链接。将相关代码(尽可能短)复制到您的问题中。
-
“对象的 ID”是什么意思?
-
我的意思是元素在列表中的位置。因此,例如,如果我有: 1:A; 2:乙; 3:C;我将用“B”删除对象2,然后列表将是:1:A; 2:C;我想在“A”“B”“C”等之前显示这些位置(我想在我的应用程序的“[]”中显示它)。
-
Eran,我会尽快修改我的问题。