Search code examples
androidtextviewandroid-edittextadditiondynamic

Dynamically add textViews to a linearLayout


I read this somewhere here and I totally lost it, but could use some assistance.

My app is pulling the column names from sqlite into an array. I want to create a textview and edit text for each one (via the size of the array), and I remember reading somewhere that you can treat the textViews variable names like an array, but I don't know where that is now.

So how would I dynamically create a textView and editText for however many listings are in an array?

It was something like

TextView tv[] = new TextView()...

for(...){
tv[i]...
}

Is this right?

I appreciate your help!


Solution

  • Something like the following should be what you need:

    final int N = 10; // total number of textviews to add
    
    final TextView[] myTextViews = new TextView[N]; // create an empty array;
    
    for (int i = 0; i < N; i++) {
        // create a new textview
        final TextView rowTextView = new TextView(this);
    
        // set some properties of rowTextView or something
        rowTextView.setText("This is row #" + i);
    
        // add the textview to the linearlayout
        myLinearLayout.addView(rowTextView);
    
        // save a reference to the textview for later
        myTextViews[i] = rowTextView;
    }