Отображение данных таблицы базы данных в Android - PullRequest
0 голосов
/ 07 апреля 2011

Я пытаюсь получить данные из базы данных 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

Ответы [ 2 ]

1 голос
/ 07 апреля 2011

Я предполагаю, что для каждой записи данных вам нужно объявить новую строку таблицы с новым текстовым представлением.Из объяснения не похоже, что вы хотите использовать одну и ту же строку таблицы и одно и то же текстовое представление для всех записей данных.

Если вы все еще застряли, пожалуйста, опубликуйте более полный пример кода.Желательно настолько полно, чтобы другие могли повторить вашу проблему.Также, пожалуйста, объясните, что означает "Это не работает".

0 голосов
/ 23 октября 2012

попробуйте этот код ...

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