目前我正在使用baseadapter(图像,资源和数据库)制作自定义列表视图。我在将一个来自sqlite的数据放入baseadapter时遇到了问题。我的代码看起来像这样,数据库代码:
public HashMap<String, String> getResult(String year) {
HashMap<String, String> questionmap = new HashMap<String, String>();
SQLiteDatabase database = this.getReadableDatabase();
String selectQuery = "SELECT _id, COLUMN_B, COLUMN_C FROM TABLE_NAME WHERE YEAR_COLUMN='"+ year + "'";
Cursor cursor = database.rawQuery(selectQuery, null);
if (cursor.moveToFirst()) {
do {
questionmap.put("_id", cursor.getString(0));
questionmap.put("COLUMN_B", cursor.getString(1));
questionmap.put("COLUMN_C", cursor.getString(2));
} while (cursor.moveToNext());
}
return questionmap;
}
这是我的BaseAdapter看起来像:
class singlerow_info {
String A, B, C;
int img;
singlerow_info(String A, String B, String C,
int img) {
this.A = A;
this.B = B;
this.C = C;
this.img = img;
}
}
class resultadapter extends BaseAdapter {
//Get YEAR values from previous activity
Intent intent = getIntent();
String year = intent.getStringExtra("YEAR");
HashMap<String, String> questionmap = myDb.getResult(year);
ArrayList<singlerow_info> list;
resultadapter(Context c)
{
list = new ArrayList<singlerow_info>();
//get String A from String resource and get String []B and []C from database
Resources ress = c.getResources();
String[] A = ress.getStringArray(R.array.exam_question);
//do here get B,C from db, Here im stuck with.
String[] B=;
String[] C= ;
int[] images = {R.drawable.icon_1,R.drawable.icon_2};
for (int i =0; i<40; i++ ){
list.add(new singlerow_info(A[i],B[i],C[i],images[i]));
}
}
请帮忙。
答案 0 :(得分:0)
类resultadapter扩展BaseAdapter { //从之前的活动中获取YEAR值 Intent intent = getIntent(); String year = intent.getStringExtra(“YEAR”); ArrayList questionmapB,questionmapC; ArrayList列表;
resultadapter(Context c)
{
list = new ArrayList<singlerow_info>();
questionmapB = new ArrayList<String>;
questionmapC = new ArrayList<String>;
readFromDB();
//get String A from String resource and get String []B and []C from database
Resources ress = c.getResources();
String[] A = ress.getStringArray(R.array.exam_question);
//do here get B,C from db, Here im stuck with.
int[] images = {R.drawable.icon_1,R.drawable.icon_2};
for (int i =0; i<40; i++ ){
list.add(new singlerow_info(A[i],questionmapB.get(i) ,questionmapC.get(i),images[i]));
}
}
private void readFromDB()
{
SQLiteDatabase database = this.getReadableDatabase();
String selectQuery = "SELECT _id, COLUMN_B, COLUMN_C FROM TABLE_NAME WHERE YEAR_COLUMN='"+ year + "'";
Cursor cursor = database.rawQuery(selectQuery, null);
if (cursor.moveToFirst()) {
do {
questionmapB.put("COLUMN_B", cursor.getString(1));
questionmapC.put("COLUMN_C", cursor.getString(2));
} while (cursor.moveToNext());
}
}