Dynamiczne dodawanie TextView [Android Studio]

0

Witam wszystkich,

Posiadam pewną bazę danych, którą chciałbym zaprezentować użytkownikowi. Posiada ona 3 kolumny: id, nazwa, kod.
Próbuję napisać Activity, które wyświetli mi wyżej wspomnianą bazę danych w formie tabeli.

Pomyślałem, by użyć TableLayout, problem jednak pojawia się w dynamicznym dodawaniu do niego kolejnych kontrolek.
Poniżej wklejam kod layoutu oraz to co udało mi się "stworzyć" w klasie.

Efekt jest taki, a w zasadzie go brak - nie wyświetla mi nic.

<?xml version="1.0" encoding="utf-8"?>

<TableLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:id="@+id/tableLayout"
    tools:context=".Show_AllData">


</TableLayout>
public class Show_AllData extends AppCompatActivity {

    private Cursor allData;
    private DatabaseHelper databaseHelper;

    private TableRow[] rows;
    private TextView[] textViews;
    private TableLayout tableLayout;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        tableLayout = findViewById(R.id.tableLayout);

        databaseHelper =  new DatabaseHelper(this);
        allData = databaseHelper.getAllData();
        allData.moveToFirst();

        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_show_all_data);


        rows = new TableRow[allData.getCount()];
        textViews = new TextView[allData.getCount()];

        do {
            String id = allData.getString(allData.getColumnIndex("product_id"));
            String eancode = allData.getString(allData.getColumnIndex("product_eancode"));
            String name = allData.getString(allData.getColumnIndex("product_name"));

            textViews[allData.getPosition()] = new TextView(this);
            textViews[allData.getPosition()].setLayoutParams(new TableLayout.LayoutParams(TableLayout.LayoutParams.WRAP_CONTENT,
                    TableLayout.LayoutParams.WRAP_CONTENT));
            rows[allData.getPosition()] = new TableRow(this);

            textViews[allData.getPosition()].setText(id + "\t" + eancode + "\t" + name);
            rows[allData.getPosition()].addView(textViews[allData.getPosition()]);
            this.tableLayout.addView(rows[allData.getPosition()]);
        } while(allData.moveToNext());
    }
}

Prosiłbym o wskazówkę lub jakąś pomoc, jak rozwiązać ten problem.

Pozdrawiam i z góry dziękuję :)

0

zaproponuje uzycie RecyclerView i ViewHolder ktory bedzie mial layout skladajacy sie z 3 widokow.

0

Słuszny sposób jest taki:

1 użytkowników online, w tym zalogowanych: 0, gości: 1