传递数据我有一个列表视图从我的数据库显示数据的问题。下面是我的显示方法的代码。使用ArrayList的<Object>
显示
public ArrayList<Object> display(String rows) {
ArrayList<Object> rowArray = new ArrayList<Object>();
String[] columns = new String[] { KEY_ROWID, KEY_PACKNAME,
KEY_PACKRENT, KEY_SIMRATE, KEY_NATMINSBUN, KEY_INTMINSBUN,
KEY_INTMINSRATE, KEY_NATSMSBUN,
KEY_NATSMSRATE, KEY_INTSMSBUN, KEY_INTSMSRATE,
KEY_MMSBUN, KEY_MMSRATE, KEY_DATALBUN,
KEY_DATALRATE };
Cursor cursor = ourDatabase.query(DATABASE_TABLE, columns, null, null,
null, null, null);
cursor.moveToFirst();
if (!cursor.isAfterLast())
{
do
{
rowArray.add(cursor.getLong(0));
rowArray.add(cursor.getString(1));
rowArray.add(cursor.getString(2));
rowArray.add(cursor.getString(3));
rowArray.add(cursor.getString(4));
rowArray.add(cursor.getString(5));
rowArray.add(cursor.getString(6));
rowArray.add(cursor.getString(7));
rowArray.add(cursor.getString(8));
rowArray.add(cursor.getString(9));
rowArray.add(cursor.getString(10));
rowArray.add(cursor.getString(11));
rowArray.add(cursor.getString(12));
rowArray.add(cursor.getString(13));
rowArray.add(cursor.getString(14));
} while (cursor.moveToNext());
cursor.close();
}
return rowArray;
}
这是该ArrayList
EtiTariffDatabase test = new EtiTariffDatabase(this);
TextView TV = (TextView) findViewById(R.id.s_etipackname);
TextView TV1 = (TextView) findViewById(R.id.s_etipackrent);
TextView TV2 = (TextView) findViewById(R.id.srentalrate);
TextView TV3 = (TextView) findViewById(R.id.snationalbun);
TextView TV4 = (TextView) findViewById(R.id.seintbun);
TextView TV5 = (TextView) findViewById(R.id.senatsmsbun);
TextView TV6 = (TextView) findViewById(R.id.seintsmsbun);
TextView TV7 = (TextView) findViewById(R.id.sedatalocalbun);
test.open();
try
{
ArrayList<Object> row = test.display(null);
TV.setText((String)row.get(1));
TV1.setText((String)row.get(2));
TV2.setText((String)row.get(3));
TV3.setText((String)row.get(4));
TV4.setText((String)row.get(6));
TV5.setText((String)row.get(8));
TV6.setText((String)row.get(10));
TV7.setText((String)row.get(12));
}
catch (Exception e)
{
Log.e("Retrieve Error", e.toString());
e.printStackTrace();
}
test.close();
}
我捕捉异常是:
04-07 16:48:23.759:E /检索错误(4134):java.lang.IndexOutOfBoundsException:索引1无效,大小为0 04-07 16:48:23.829:W/System.err的(4134):java.lang.IndexOutOfBoundsException:无效索引1,大小为0 04-07 16:48:23.829:W/System.err的(4134 ):在java.util.ArrayList.throwIndexOutOfBoundsException(ArrayList.java:251)
我一直试图玩很久。它起初工作,但我删除了数据库,并重新创建它。从那时起没有任何数据显示出来,并伴随着上述错误。任何援助将不胜感激。
它显示我的数组没有对象。有我的数据库中的数据因为我拉我的数据库文件来检查这一点。我认为这与创建我已经完成的对象数组有关。 – 2013-04-07 17:56:03
数组的创建和填充不应该是一个问题,你已经做了正确的。 我认为查询有问题,以便游标返回一组空白的数据。你可以用'Log.d(“cursor”,cursor.getCount()+“”);' – chuky 2013-04-07 18:07:47
发现这个问题。数据库没有被创建。固定和繁荣,它一切正常!谢谢! – 2013-04-07 21:00:19