#android #android-tablelayout
#Android #android-tablelayout
Вопрос:
Я пытаюсь получить данные из базы данных SQLite и отобразить их в табличном формате в Android. Вот код для отображения данных:
Cursor c=db.getAllTitles();
if(c.moveToFirst())
{
do
{
DisplayTitle(c);
}while(c.moveToNext());
}
DisplayTitle
Функция выглядит так, как показано ниже:
public void DisplayTitle(Cursor c)
{
txt.setText(c.getString(0));
txt.setTextColor(Color.blue(1));
tr.addView(txt);
tl.addView(tr);
}
Здесь txt
приведена TextView
переменная, которую я глобально объявил в классе. tl
это TableLayout
переменная и tr
является TableRow
переменной, которую я объявил глобально в классе.
Это не работает. Однако, если я использую Toast
функцию, отображаются данные, извлеченные из базы данных. Пожалуйста, помогите.
Вот ссылка на весь код:
Комментарии:
1. Люди, вероятно, могли бы догадаться, как выглядит макет xml, но как насчет того, чтобы вы точно так же показали свой?
Ответ №1:
Я предполагаю, что для каждой записи данных вам нужно объявить новую строку таблицы с новым текстовым представлением. Из объяснения не кажется, что вы хотите использовать одну и ту же строку таблицы и одно и то же текстовое представление для всех записей данных.
Если вы все еще застряли, пожалуйста, опубликуйте более полный пример кода. Желательно настолько полное, чтобы другие могли повторить вашу проблему. Также, пожалуйста, объясните, что означает «Это не работает».
Комментарии:
1. pastebin.me/24d7e33ce334e56087dcb657081684e9 .. Пожалуйста, просмотрите полный код здесь…. ЭТО не работает, означает, что я получаю сообщение об ошибке «Ваше приложение неожиданно перестало работать»…
2. Вы внесли изменения, которые я предложил? У вас все еще возникают проблемы? Можете ли вы опубликовать полный код, включая XML-макет и манифест, как было запрошено?
Ответ №2:
попробуйте этот код…
public Cursor getAll()
{
return db.query(DATABASE_TABLE, new String[] {KEY_ROWID, KEY_NAME,
KEY_MOVES, KEY_TIME}, null, null, null, null, null);
}
после этого используйте этот код в основном действии
private void getall()
{
db.open();
Cursor c = db.SortAllRows();
int i=1;
if (c.moveToFirst())
{
do
{
DisplayContact(c,i );
} while (c.moveToNext());
}
c.close();
db.close();
}
public void DisplayContact(Cursor c,int row )
{
String name11 = c.getString(1) c.getString(2) c.getString(3);
tv1.setText(name11 );
}