我在数据库中建的表如下:create table rec_table(phonum varchar(15),content varchar(15),time varchar(50))我进行查询如下:
Cursor cursor = db.query("rec_table", new String[]{"phonum","time","content"}, null, null, null, null, null);
if(cursor.isBeforeFirst()){
while(cursor.moveToNext()){
NUM = cursor.getString(cursor.getColumnIndex("phonum"));
TIME = cursor.getString(cursor.getColumnIndex("time"));
CONTENE = cursor.getString(cursor.getColumnIndex("content"));
我想把 NUM ,TIME , CONTENE 用listview来显示,怎么弄啊完整代码下:                                                                                                                   public class ReceiveActivity extends ListActivity{
String NUM = null;
String TIME = null;
String CONTENE = null;
List<Map<String,String>> list = new ArrayList();
Map<String,String> map = new HashMap();
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);

SMSDBHelper smsdbhelper = new SMSDBHelper(ReceiveActivity.this);
SQLiteDatabase db = smsdbhelper.getWritableDatabase();
Cursor cursor = db.query("rec_table", new String[]{"phonum","time","content"}, null, null, null, null, null);
if(cursor.isBeforeFirst()){
while(cursor.moveToNext()){
NUM = cursor.getString(cursor.getColumnIndex("phonum"));
TIME = cursor.getString(cursor.getColumnIndex("time"));
CONTENE = cursor.getString(cursor.getColumnIndex("content"));


map.put("N", NUM);
                  map.put("T", TIME);
                  map.put("C", CONTENE);
       
                  list.add(map);

}

SimpleAdapter adapter = new SimpleAdapter(this, list, R.layout.list, new String []{"N","T","C"}, new int []{R.id.phoneNum,R.id.name,R.id.Message});
                            setListAdapter(adapter);
}
}

}
我这样只有一个listview,而且永远都把查询到最后一条数据插到listview当中,前面的数据都被覆盖了

解决方案 »

  1.   


    map = new HashMap();
    map.put("N", NUM);
    map.put("T", TIME);
    map.put("C", CONTENE); 
    list.add(map);
    试试
      

  2.   

    你list每次加的对象都是同一个,要重新new一个给他
      

  3.   


     public class ReceiveActivity extends ListActivity{
    String NUM = null;
    String TIME = null;
    String CONTENE = null;
    List<Map<String,String>> list = new ArrayList();
    @Override
    protected void onCreate(Bundle savedInstanceState) {
    // TODO Auto-generated method stub
    super.onCreate(savedInstanceState);SMSDBHelper smsdbhelper = new SMSDBHelper(ReceiveActivity.this);
    SQLiteDatabase db = smsdbhelper.getWritableDatabase();
    Cursor cursor = db.query("rec_table", new String[]{"phonum","time","content"}, null, null, null, null, null);
    if(cursor.isBeforeFirst()){
    do{
    Map<String,String> map = new HashMap();
    map.put("N", cursor.getString(cursor.getColumnIndex("phonum")));
    map.put("T", cursor.getString(cursor.getColumnIndex("time")));
    map.put("C", cursor.getString(cursor.getColumnIndex("content")));
    list.add(map);
    }while(cursor.moveToNext());
    SimpleAdapter adapter = new SimpleAdapter(this, list, R.layout.list, new String []{"N","T","C"}, new int []{R.id.phoneNum,R.id.name,R.id.Message});
    setListAdapter(adapter);
    }
    }
    }试试吧!