[英]Cursor Array into ListView but multiple columns
我目前通过数据库查询获取光标数据,将每个选择放入一个数组中,然后显示在我的三个列表视图之一中。
public void insertData() {
ListView listView = (ListView) findViewById(R.id.listWorkouts1);
ListView listView2 = (ListView) findViewById(R.id.listWorkouts2);
ListView listView3 = (ListView) findViewById(R.id.listWorkouts3);
SQLiteController db = new SQLiteController(this);
String username = ma.id;
//populate an ArrayList<String> from the database and then view it
ArrayList<String> theList1 = new ArrayList<>();
ArrayList<String> theList2 = new ArrayList<>();
ArrayList<String> theList3 = new ArrayList<>();
ArrayList<String> finalList = new ArrayList<>();
Cursor data = db.getUserListContents(username);
if (data.getCount() == 0) {
Toast.makeText(this, "There are no contents in this list!", Toast.LENGTH_LONG).show();
} else {
while (data.moveToNext()) {
theList1.add(data.getString(0));
theList2.add(data.getString(1));
theList3.add(data.getString(2));
ListAdapter listAdapter = new ArrayAdapter<>(this, android.R.layout.simple_list_item_1, theList1);
listView.setAdapter(listAdapter);
ListAdapter listAdapter2 = new ArrayAdapter<>(this, android.R.layout.simple_list_item_1, theList2);
listView2.setAdapter(listAdapter2);
ListAdapter listAdapter3 = new ArrayAdapter<>(this, android.R.layout.simple_list_item_1, theList3);
listView3.setAdapter(listAdapter3);
}
}
}
问题是用户可以分别滚动浏览三个列表视图中的每一个。
如何只使用一个 listView 但将要在不同列中看到的数据分开?
默认情况下,它会列出前一个值下的所有内容。
执行的每个 While 循环我都希望数据显示在同一行上,而不是在另一行下。
任何帮助表示赞赏。
在您的情况下,您可以将RecyclerView
与GridLayoutManager
一起使用。 这是一个基本的实现示例。 您也可以查看本教程。
您实际上可以创建一个对象并将该对象的列表传递到您的适配器以从那里加载项目,而不是单独的列表。 例如,考虑以下类。
public class Workout {
public String name;
public String date;
public String weight;
}
现在,当从cursor
读取值时,创建一个Workout
类的对象并创建一个List<Workout>
然后修改您的适配器以传递这个列表。
我希望我能给你一个优雅地实现它的想法。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.