private List<Map<String, Object>> getData(){
List<Map<String, Object>> list = new ArrayList<Map<String, Object>>();
Map<String, Object> map;
String[] columns=new String[]{"a.name","b.name"};
Cursor cursor = my_app.get_dbhandle().query("village a inner join town b",columns,"a.fatherRegionId=b.id",null,null,null,null);
while(cursor.moveToNext()&&cursor != null){
map = new HashMap<String, Object>();
for(String skey:columns){
if(skey.equals("village.name")){//skey要和数据库的字段一致
int code = cursor.getColumnIndex(skey);
String village_name = cursor.getString(code);
map.put("title", village_name);
continue;
}
if(skey.equals("town.name")){
int code = cursor.getColumnIndex(skey);
String town_name = cursor.getString(code);
map.put("info", town_name);
continue;
}
}
list.add(map);
}
return list;
}
问题1:query()返回的cursor为空,内联查询应该怎么写才对?
问题2:if(skey.equals("village.name"))这样写肯定不行,如何将查询结果插入两列的listview?