Я пытался разобраться в этой проблеме, не обращаясь за помощью, но я дошел до того, что, честно говоря, не могу ее выяснить.
Вот функция, которую я использую для запроса базы данных (япришлось сменить имя для конфиденциальности):
public Cursor getAllItems(){
Cursor cursor = db.query(true, DATABASE_TABLE, new String []{KEY_NAME, KEY_1,KEY_2, KEY_3,
KEY_4, KEY_5, KEY6,
KEY_7, KEY_8, KEY_9, KEY_10, KEY_11, KEY_12,
KEY_13}, null, null, null, null, null, null);
cursor.moveToFirst();
return cursor;
}
Здесь я заполняю таблицу, созданную с использованием xml.
public void populate(){
db = new DBAdapter(this);
TableLayout TL = (TableLayout)findViewById(R.id.table);
db.open();
c = db.getAllItems();
while(!c.isAfterLast()){
if(Integer.toString(c.getPosition())!=null){
TableRow TR = new TableRow(this);
TR.setId(c.getPosition());
TextView column1 = new TextView(this);
TextView column2 = new TextView(this);
TextView column3 = new TextView(this);
TR.setLayoutParams(new TableRow.LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.WRAP_CONTENT));
column1.setGravity(0x01);
column1.setTextColor(0xff000000);
column1.setTextSize(2,20);
//column1.setText(c.getString(3));
column1.setText(Integer.toString(c.getPosition()));
TR.addView(column1);
column2.setGravity(0x01);
column2.setTextColor(0xff000000);
column2.setTextSize(2,20);
column2.setText(c.getString(0));
TR.addView(column2);
column3.setGravity(0x01);
column3.setTextColor(0xff000000);
column3.setTextSize(2,20);
//column3.setText(c.getString(1));
column3.setText(Integer.toString(TR.getId()));
TR.addView(column3);
TR.setOnLongClickListener(this);
TL.addView(TR);
1Total += c.getDouble(1);
2Total += c.getDouble(2);
}
c.moveToNext();
}
db.close();
Если я просматриваю базу данных с использованием DDMS, все отображается в правильном порядке (порядок, в котором я вставляю в таблицу).Однако, когда я пытаюсь отобразить данные в виде таблицы, по какой-то причине он организует значения на основе значения KEY_NAME.Поэтому, если я вставлю данные в таблицу, например, «B - C - D - A - E», то моя таблица будет заполнена «A - B - C - D - E»
Что-то странное в том, чтоон настроен таким образом, что при длинном щелчке по любой данной строке создается фрагмент диалога, отображающий остальную информацию, и эта информация верна.Поэтому, если использовать приведенный выше пример, я долго нажимаю на отображаемую строку «C», тогда я получу данные для «D», что является правильным.
Есть идеи?