Aggiungere in modo dinamico textViews a un linearLayout

L'ho letto da qualche parte qui e l'ho completamente perso, ma potrei servire qualche aiuto.

La mia applicazione sta tirando i nomi delle colonne da sqlite in un arrays. Vorrei creare una visualizzazione di text e modificare il text per ognuno (tramite la dimensione dell'arrays) e ricordo di aver letto da qualche parte che puoi trattare i nomi delle variables di textViews come un arrays, ma non so where sia.

  • Worklight - FWLST1040E: creazione android non rioutput: java.io.FileNotFoundException
  • Se utilizzo una nuova libreria "V7 Appcompat", ho ancora bisogno di "V4 Support Library" per un minimo SDK = 7?
  • Creazione di tabelle SQLite da asset HTML di Android
  • Controllare la connessione internet
  • OkHttp in android per effettuare richieste di networking
  • Il video gioca una sola volta in Webview di Android
  • Quindi, come potrei creare dynamicmente un textView e editText per comunque molti elenchi sono in una matrix?

    Era qualcosa di simile

    TextView tv[] = new TextView()... for(...){ tv[i]... } 

    È giusto?

    Apprezzo il vostro aiuto!

    5 Solutions collect form web for “Aggiungere in modo dinamico textViews a un linearLayout”

    Qualcosa di simile al seguente dovrebbe essere quello di cui hai bisogno:

     final int N = 10; // total number of textviews to add final TextView[] myTextViews = new TextView[N]; // create an empty arrays; 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; } 
     LinearLayout ll = (LinearLayout) findViewById(R.id.linearlayout2); for (int i = 0; i < 5; i++) { TextView tv = new TextView(this); tv.setText("Dynamic TextView" + i); tv.setId(i + 5); ll.addView(tv); } u can do like this also.. 

    Penso che questo sarà utile:

     int j = 0; context.getSystemService(Context.WINDOW_SERVICE); WindowManager manager = (WindowManager) context .getSystemService(Context.WINDOW_SERVICE); Display display = manager.getDefaultDisplay(); for (int i = 0; i < tabsize; i++) { Tab tab = tabSet.get(i); if (i == selectedTabId) tab.setSelected(true); View view = tab.getView(); TableRow.LayoutParams pCol = new TableRow.LayoutParams(); pCol.width = display.getWidth() / tabSet.size(); rowBottom.addView(view, pCol); } 

    L'utilizzo di ArrayList può aiutare ad aggiungere qualsiasi numero di TextViews in modo dinamico. Puoi anche voler eliminare un TextView specifico dal layout lineare padre. Questo è un modo efficace per la memory. Di seguito è riportto uno snippet.

     ArrayList<TextView> mTextViewList = new ArrayList<>(); //empty list of TextViews if(condition){ /* can repeat several times*/ //Create a temporary instance which will be added to the list final TextView mTextView = new TextView(this); //Add the instance to the ArrayList mTextViewList.add(mTextView); //Add view to the Parent layout in which you want to add your views mLinearLayout.addView(mTextView); } //Change the text of 6th(index:5) TextView which was added mTextViewList.get(5).setText("My Text"); //Remove 2nd(index:1) TextView from the parent LinearLayout mLinearLayout.removeView(mTextViewList.get(1)); 

    Quindi dici che hai creato un linearlayout all'interno di un file .xml come questo:

     <LinearLayout android:orientation="vertical" android:id="@+id/linear" android:layout_width="match_parent" android:layout_height="wrap_content"> </LinearLayout> 

    ora il codice per aggiungere 5 visualizzazioni in modo dinamico

      LinearLayout linearLayout= (LinearLayout)findViewById(R.id.linear); //find the linear layout linearLayout.removeAllViews(); //add this too for(int i=0; i<5;i++){ //looping to create 5 textviews TextView textView= new TextView(this); //dynamically create textview textView.setLayoutParams(new LinearLayout.LayoutParams( //select linearlayoutparam- set the width & height ViewGroup.LayoutParams.MATCH_PARENT, 48)); textView.setGravity(Gravity.CENTER_VERTICAL); //set the gravity too textView.setText("Textview: "+i); //adding text linearLayout.addView(textView); //inflating :) } 
    L'Android è un fan Android di Google, tutto su telefoni Android, Android Wear, Android Dev e applicazioni Android Games e così via.