Java 如何显示两种类型的数据库信息?
我试图让我的应用程序显示用户设置的任务的标题,以及他们设置的日期。我只能正确地显示其中一个。如何在没有一个或另一个的情况下同时显示任务标题和月份 我尝试过使用两个不同的while循环,并使用相同的while循环同时设置两个视图Java 如何显示两种类型的数据库信息?,java,android,android-sqlite,Java,Android,Android Sqlite,我试图让我的应用程序显示用户设置的任务的标题,以及他们设置的日期。我只能正确地显示其中一个。如何在没有一个或另一个的情况下同时显示任务标题和月份 我尝试过使用两个不同的while循环,并使用相同的while循环同时设置两个视图 private void updateUI() { ArrayList<String> taskList = new ArrayList<>(); ArrayList<String> Dates = ne
private void updateUI() {
ArrayList<String> taskList = new ArrayList<>();
ArrayList<String> Dates = new ArrayList<>();
SQLiteDatabase db = mHelper.getReadableDatabase();
Cursor cursor = db.query(Assignments.TaskEntry.TABLE, dbCols, null, null, null, null, null);
while (cursor.moveToNext()) {
int idx = cursor.getColumnIndex(Assignments.TaskEntry.COL_TASK_TITLE);
int month = cursor.getColumnIndex(Assignments.TaskEntry.COL_TASK_MONTH);
taskList.add(cursor.getString(idx));
Dates.add(cursor.getString(month));
}
if (mAdapter == null) {
mAdapter = new ArrayAdapter<>(this,
R.layout.list,
R.id.date,
Dates);
mTaskListView.setAdapter(mAdapter);
mAdapter2 = new ArrayAdapter<>(this,
R.layout.list,
R.id.task_title,
taskList);
mTaskListView.setAdapter(mAdapter2);
} else {
mAdapter.clear();
mAdapter.addAll(Dates);
mAdapter.notifyDataSetChanged();
mAdapter2.clear();
mAdapter2.addAll(taskList);
mAdapter2.notifyDataSetChanged();
}
private void updateUI(){
ArrayList taskList=新建ArrayList();
ArrayList日期=新建ArrayList();
SQLiteDatabase db=mHelper.getReadableDatabase();
Cursor Cursor=db.query(Assignments.TaskEntry.TABLE,dbCols,null,null,null,null);
while(cursor.moveToNext()){
int idx=cursor.getColumnIndex(Assignments.TaskEntry.COL\u TASK\u TITLE);
int month=cursor.getColumnIndex(Assignments.TaskEntry.COL\u TASK\u month);
taskList.add(cursor.getString(idx));
add(cursor.getString(month));
}
if(mAdapter==null){
mAdapter=新阵列适配器(此,
R.layout.list,
R.id.date,
日期);
mTaskListView.setAdapter(mAdapter);
mAdapter2=新阵列适配器(此,
R.layout.list,
R.id.任务名称,
任务清单);
mTaskListView.setAdapter(mAdapter2);
}否则{
mAdapter.clear();
mAdapter.addAll(日期);
mAdapter.notifyDataSetChanged();
mAdapter2.clear();
mAdapter2.addAll(任务列表);
mAdapter2.notifyDataSetChanged();
}
输出应该是数字形式的一个月,然后是用户设置的任务标题。您设置了两次适配器,只有第二个适配器会显示在列表中。如果要在列表视图中的一行中显示,为什么要使用两个列表 在列表视图中显示自定义数据有几种不同的方法,例如,。或者您可以简单地使用ArrayList并像这样添加数据
String任务=cursor.getString(idx);
字符串日期=cursor.getString(月);
任务列表。添加(任务+“\n”+日期);
或者干脆
taskList.add(cursor.getString(idx)+“\n”+cursor.getString(month));
然后设置适配器
mAdapter=新阵列适配器(此,
R.layout.list,
R.id.任务名称,
任务清单);
mTaskListView.setAdapter(mAdapter);
您只能将适配器1或适配器2设置为tasklistview的适配器,并且根据您设置为最后一个适配器的内容,您可以看到它们的值谢谢!这很有效,是我所寻找的一个很好的替代方案!