Android 如何在Multicolumn ListView中通过HashMap从DBHelper检索数据
我想通过HashMap在DBHelper类的多列ListView中查看我的记录。这将以多列形式显示我的数据,而且所有行都可以单击。我有一些困难。我的密码在这里 DBHelper.javaAndroid 如何在Multicolumn ListView中通过HashMap从DBHelper检索数据,android,hashmap,Android,Hashmap,我想通过HashMap在DBHelper类的多列ListView中查看我的记录。这将以多列形式显示我的数据,而且所有行都可以单击。我有一些困难。我的密码在这里 DBHelper.java public ArrayList<HashMap<String, String>> getdata(){ ArrayList<HashMap<String, String>> maplist = new ArrayList<HashMap&
public ArrayList<HashMap<String, String>> getdata(){
ArrayList<HashMap<String, String>> maplist = new ArrayList<HashMap<String,String>>();
SQLiteDatabase db = getReadableDatabase();
String query = "select * from tbexpenses";
Cursor c = db.rawQuery(query, null);
if(c.moveToFirst()){
do{
HashMap<String, String> map = new HashMap<String, String>();
for(int i=0; i<c.getColumnCount();i++){
map.put(c.getColumnName(i), c.getString(i));
}
}while (c.moveToNext());
}db.close();
return maplist;
}
将此代码替换为问号
list.clear();
DBHelper helper = new DBHelper();
list = helper.getdata();
编辑1:getdata()方法中的错误
还要检查getdata()
函数
public ArrayList<HashMap<String, String>> getdata(){
ArrayList<HashMap<String, String>> maplist = new ArrayList<HashMap<String,String>>();
SQLiteDatabase db = getReadableDatabase();
String query = "select * from tbexpenses";
Cursor c = db.rawQuery(query, null);
if(c.moveToFirst()) {
do {
// you are creating map here but not adding this map to list
HashMap<String, String> map = new HashMap<String, String>();
for(int i=0; i<c.getColumnCount();i++) {
map.put(c.getColumnName(i), c.getString(i));
}
// so do add it here
maplist.add(map);
} while (c.moveToNext());
}
db.close();
return maplist;
}
public ArrayList getdata(){
ArrayList映射列表=新建ArrayList();
SQLiteDatabase db=getReadableDatabase();
String query=“从tbexpenses中选择*”;
游标c=db.rawQuery(查询,空);
if(c.moveToFirst()){
做{
//您正在此处创建地图,但未将此地图添加到列表中
HashMap=newHashMap();
对于(int i=0;i)您的问题是什么。这里显示的是DBHelper中包含完整行的空列表。您的意思是什么?您是否在表“tbexpenses”中插入了任何值?不,我想从DBHelper中获取hashmap列中的值需要更多信息,您的问题不清楚。这将非常有帮助
public class Constants {
public static final String FIRST_COLUMN="First";
public static final String SECOND_COLUMN="Second";
public static final String THIRD_COLUMN="Third";
public static final String FOURTH_COLUMN="Fourth";
}
list.clear();
DBHelper helper = new DBHelper();
list = helper.getdata();
public ArrayList<HashMap<String, String>> getdata(){
ArrayList<HashMap<String, String>> maplist = new ArrayList<HashMap<String,String>>();
SQLiteDatabase db = getReadableDatabase();
String query = "select * from tbexpenses";
Cursor c = db.rawQuery(query, null);
if(c.moveToFirst()) {
do {
// you are creating map here but not adding this map to list
HashMap<String, String> map = new HashMap<String, String>();
for(int i=0; i<c.getColumnCount();i++) {
map.put(c.getColumnName(i), c.getString(i));
}
// so do add it here
maplist.add(map);
} while (c.moveToNext());
}
db.close();
return maplist;
}