0
我有一個sqlite數據庫,我想通過數據庫查詢和填充列表視圖與返回,但列表視圖顯示只有一行很多返回多行,也沒有錯誤。 Item是一個包含setter和getter的類。android sqlite查詢無法返回?
我用這個方法用於查詢:
fillList2(edtSeach.getQuery().toString().toLowerCase(),"zankodict", "id","eng",Long.valueOf(1),Long.valueOf(1794));
這是本方法:
private void fillList2(String keyword,String table, String columnn,String column2,Long num1,Long num2) {
if (keyword.equals(BuildConfig.FLAVOR)) {
this.myList = new ArrayList();
} else if (keyword.toCharArray().length < 2) {
myList.clear();
myList.add(DBQuery.a(keyword,table,columnn,column2,num1,num2));
} else {
myList.clear();
myList.add(DBQuery.a(keyword,table,columnn,column2,num1,num2));
}
myListView.setAdapter(new AdapterEN(getActivity(), R.layout.single_row, myList,keyword));
}
}
DBQUery.class
import android.database.Cursor;
public class DBQuery {
private static Item itemm, itemm2;
private static Cursor cursor10;
public static Item a(String keyword,String table, String columnn,String column2, Long num1,Long num2) {
C0101f.getDatabaseHelper().openDatabase();
cursor10 = C0101f.getDatabaseHelper().QueryData("select * from "+ table +" WHERE "+ columnn +" between "+num1+" and "+num2+ " And " +column2+ " LIKE '"+ keyword + "%'");
itemm2 = cur(table);
C0101f.getDatabaseHelper().closeDataBase();
return itemm2;
}
public static Item cur(String table){
switch (table) {
case "zankodict":
if (cursor10 != null) {
if (cursor10.moveToFirst()) {
do {
itemm = new Item();
itemm.setId(cursor10.getString(0));
itemm.setEng(cursor10.getString(1));
} while (cursor10.moveToNext());
}
}
break;
case "kudict":
if (cursor10 != null) {
if (cursor10.moveToFirst()) {
do {
itemm = new Item();
itemm.setId(cursor10.getString(0));
itemm.setKurd(cursor10.getString(1));
itemm.setId2(cursor10.getLong(2));
} while (cursor10.moveToNext());
}
}
break;
case "ardict":
if (cursor10 != null) {
if (cursor10.moveToFirst()) {
do {
itemm = new Item();
itemm.setId(cursor10.getString(0));
itemm.setAr(cursor10.getString(1));
itemm.setId2(cursor10.getLong(2));
} while (cursor10.moveToNext());
}
}
break;
}
return itemm;
}
}
我不知道'Item'是什麼,但是你用'item = new Item()'設置每個遊標查詢一個新遊標。而且我無法看到你在哪裏添加這個新項目,所以我想它總是被覆蓋,結果只是一個項目。 – Opiatefuchs
DBQuery只是返回一個項目。我不能看到一種方法,你正在循環並在每個循環中添加一個新項目。 – Opiatefuchs
項目是一個包含getters和setter的類,是否有問題? –