Я создал метод для хранения результата запроса SQLite в таблице
public ArrayList <String> getProductName(double idcat)
{
ArrayList <String> tab = new ArrayList <String>();
try
{
Cursor c = null;
c = database.rawQuery("SELECT " + COL_PRODUCT_NAME + " FROM "
+ TABLE_PRODUCT + " WHERE " + COL_CATEGORY + "= '" + idcat + "'", null);
for(int i=0;i<c.getCount();i++)
{
tab.add(c.getString(c.getColumnIndex(COL_PRODUCT_NAME)));
c.moveToNext();
}
c.close();
}
catch(Exception e)
{
e.printStackTrace();
}
return tab;
}
Я хочу получить количество элементов в этой таблице, поэтому я ставлю это:
ArrayList <String> tab = new ArrayList <String>();
TextView tv = new TextView(this);
tab=db.getProductName(1);
int n =tab.size();
tv.setText("n=" +n);
Но когда я скомпилирую свое приложение, я получаю 0 !!! Я хочу знать, правильно ли мой метод или нет.
Я думаю, вам нужно сделать этот вызов первым, прежде чем начинать итерацию курсора:
c.moveToFirst()
Это должно быть что-то вроде этого
if(c.moveToFirst()){
//Loop here
}
e.printStackTrace();
throw new RuntimeException(e);
знать или читать журналы.