gpt4 book ai didi

ListView 上的 Android SQLite 查询结果

转载 作者:搜寻专家 更新时间:2023-11-01 07:35:39 24 4
gpt4 key购买 nike

刚开始学习如何为 Android 编程,现在我陷入了一些疑问。

我有一个包含多个表的 SQLite 数据库,每个表都有一些字段。

我创建了一个类来管理我的数据库,并想象其中一个函数是这样的:

public Cursor getGroupData() {
String[] values = new String[] {_ROWID, _NAME, _AGE, _PHONE};
Cursor c = db.query(BD_TABLE, values, null, null, null, null, null);
return c;
}

现在我有两种情况之一。

第一种情况

例如,想要在 ListView 中显示我的查询返回的所有名称。这样,用户可以单击一个名称,然后将显示一个新 Activity (想象一个包含所有用户信息的布局)

第二种情况

例如,想要在 ListView 中显示我的查询返回的所有名称。有了它,用户可以点击一个名字并执行一个新的查询(想象一下从该用户那里获取其他数据)。查询将导致返回各种数据,我再次想在 ListView 中显示某些字段(例如地址)。现在,如果用户点击地址,一个新的 Activity 将出现(例如,包含地址相关信息的布局)。

在这两种情况下,虽然我只是选择一个名称或地址,但 SQLite 返回的所有数据都必须可用,例如,在第一种情况下,我选择一个名称,它会显示在布局上,类似于联系信息,但查询结果、年龄和电话也必须可用。

现在我正在做类似的事情:

Cursor values = db.getGroupData();
// Now I'm thinking in putting some code to iterate over the cursor and put what I want to display on my listview on a string array

ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, values_I_what_to_show);
setListAdapter(adapter);

问题是我将数据放在字符串数组中,但需要查询返回的所有数据。

你能给我指明方向吗?

问候,

最佳答案

试试这个:

 Cursor cursor =db.getGroupData();
ArrayList<MyData> listData = new ArrayList<MyData>();
while (cursor.moveToNext()) {
MyData temp = new MyData();
temp.id = cursor.getInt(0);
temp.name = cursor.getString(1);
temp.age= cursor.getInt(2);
temp.phone= cursor.getInt(3);
listData .add(temp);
temp =null;
}
cursor.close();
MyAdapter myAdapter = new MyAdapter(this,
R.layout.list_item, listData); //use custom adapter
listView.setAdapter(myAdapter);

声明 MyData 类:

  private class MyData{
int id ;
String name;
int age;
int phone;
}

MyAdapter 类:

private class MyAdapter extends ArrayAdapter<projData> {
private ArrayList<MyData> items;
private Context context;

public MyAdapter(Context context, int textViewResourceId,
ArrayList<MyData> items) {
super(context, textViewResourceId, items);
this.context = context;
this.items = items;
}

public View getView(final int position, View convertView,
ViewGroup parent) {
View view = convertView;
if (view == null) {
LayoutInflater inflater = (LayoutInflater) context
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
view = inflater.inflate(R.layout.list_item, null);
}
//here getview code as per ur req
}
return view;
}
}

关于ListView 上的 Android SQLite 查询结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11646687/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com