Отображение данных таблицы базы данных в Android

#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 функцию, отображаются данные, извлеченные из базы данных. Пожалуйста, помогите.

Вот ссылка на весь код:

http://pastebin.me/24d7e33ce334e56087dcb657081684e9

Комментарии:

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 );
}