【发布时间】:2013-12-17 22:48:30
【问题描述】:
我想显示从数据库到 listView 的所有任务名称,但它只显示它们的对象 id(或名称或 w。)像这样
com.zcutuhacek.tasker.Task@41a826d0
com.zcutuhacek.tasker.Task@41a465d4
...
我调用函数,它返回我的对象(任务)列表
public class ListActivity extends Activity {
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_list);
DatabaseTaskHandler db = new DatabaseTaskHandler(ListActivity.this);
List<Task> list = db.getAllTasks();
ListView listview = (ListView) findViewById(R.id.listView1);
final StableArrayAdapter adapter = new StableArrayAdapter(this,
android.R.layout.simple_list_item_1, list);
listview.setAdapter(adapter);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.list, menu);
return true;
}
private class StableArrayAdapter extends ArrayAdapter<Task> {
HashMap<String, Integer> mIdMap = new HashMap<String, Integer>();
public StableArrayAdapter(Context context, int textViewResourceId,
List<Task> list) {
super(context, textViewResourceId, list);
for (int i = 0; i < list.size(); ++i) {
mIdMap.put(list.get(i), i);
}
}
}
}
我尝试将 HashMap 更改为 HashMap<Task, Integer>,当我将其放入 HashMap 时,我也尝试使用我的对象和对象名称的 getter:
list.get(i).get_name()
list.get(i)._name
当我写信记录我要放入 HashMap 的内容时,它显示成功。不管有没有.toString(),我都试过了,但总是和我一开始写的一样。
这是返回任务列表的方法:
public List<Task> getAllTasks() {
List<Task> taskList = new ArrayList<Task>();
String selectQuery = "SELECT * FROM " + TABLE_TASKS;
SQLiteDatabase db = this.getWritableDatabase();
Cursor cursor = db.rawQuery(selectQuery, null);
if (cursor.moveToFirst()) {
do {
Task task = new Task();
task.setId(Integer.parseInt(cursor.getString(0)));
task.set_name(cursor.getString(1));
// Adding contact to list
taskList.add(task);
} while (cursor.moveToNext());
}
return taskList;
}
请问我做错了什么?谢谢
【问题讨论】:
-
Task类的toString实现
-
那将是地址或内部名称,发布有关任务名称的数据库存储和相关检索的代码
-
你能发布
Task类和db.getAllTasks()方法吗? -
@AmulyaKhare 我已经添加了,但我认为这不是问题
-
@PankajKumar 在我实现它之后,是否还需要覆盖适配器的
getView?谢谢
标签: android list object hashmap android-arrayadapter