Как сделать таблицу для отображения записей из базы данных SQLite? - PullRequest
0 голосов
/ 09 ноября 2018

У меня простой вопрос. Я пытаюсь создать какой-то макет, который бы отображал мои записи из базы данных SQLite в отдельных ячейках. Я пытался сделать это с помощью TextViews, но это не то, что я ожидаю. Знаете ли вы какие-либо идеи по созданию таблицы «как у» с заголовками и т. Д.? Более того, мне нужно, чтобы каждую строку можно было выбирать и открывать (моя цель - создать что-то вроде каталога с продуктами).

final TextView dTable= (TextView) findViewById(R.id.displayTable);
final ManageDatabase md = new ManageDatabase(this);
 dTable.setText("");
    for(Product p: md.takeAllProducts()){

        dTable.setText(dTable.getText()+"\n"+" "+p.getProductCode()+" "+p.getProductName()+" "+p.getQuantity()+" "+p.getExpireDate());
    }

1 Ответ

0 голосов
/ 10 ноября 2018

Вы можете использовать TableLayout для него и динамически добавлять туда свой контент.

Сначала получите ссылку на макет таблицы из файла XML.

TableLayout myTable = (TableLayout) findViewById(R.id.mTable);

Затем вы можете динамически добавлять извлеченные данные в таблицу, как показано ниже

 for(Product p: md.takeAllProducts()){
         //create new row
         TableRow tableRow =  new TableRow(this);

         // create new text view
         TextView textView1 = new TextView(this);
         textView1.setText(p.getProductCode());
         //add to row
         tableRow.addView(textView1);

         //create another text view and add to same row
         TextView textView2 = new TextView(this);
         textView2.setText(p.getProductName());
         tableRow.addView(textView2);

         //
         TextView textView3 = new TextView(this);
         textView3.setText(p.getQuantity());
         tableRow.addView(textView3);

         //
         TextView textView4 = new TextView(this);
         textView4.setText(p.getExpireDate());
         tableRow.addView(textView4);
}
...