Android HashMap不返回对象的名称

Android HashMap不返回对象的名称,android,list,object,hashmap,android-arrayadapter,Android,List,Object,Hashmap,Android Arrayadapter,我想显示从数据库到listView的所有任务名称,但它只显示它们的对象id或名称或w。像这样 com.zcutuhacek.tasker。Task@41a826d0 com.zcutuhacek.tasker。Task@41a465d4 ... 我调用函数,它返回我的对象任务列表 public class ListActivity extends Activity { protected void onCreate(Bundle savedInstanceState) {

我想显示从数据库到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中时,它成功地显示了出来。我试过用或不用。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;
}

请问我做错了什么?谢谢

您需要重写适配器的getView方法并实现ViewHolder模式来处理任务对象的显示。

实现任务类的toString。这将是地址或内部名称,发布关于任务名称数据库存储和RegardingYou Post任务类和db.getAllTasks方法检索的代码。@AmulyaKhare我已经添加了它,但我认为它不是problem@PankajKumar在我实现它之后,是否仍然需要覆盖适配器的getView?谢谢
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;
}