How to programmatically set textview-s and their properties?

I programmatically populate a tablelayout in scrollview with tablerow-s. In tables, I put data in text fields.
Now my quest is how to programmatically (in java) install text queries as follows:

<TextView android:layout_width="20dp" android:layout_height="wrap_content" android:layout_marginLeft="10dp" /> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" style="@style/tab" android:layout_weight="0.4" android:minWidth="80dp" /> <TextView android:layout_width="81dp" android:layout_height="wrap_content" style="@style/tab" /> <TextView android:layout_width="70dp" android:layout_height="wrap_content" style="@style/tab" /> <TextView android:layout_width="50dp" android:layout_height="wrap_content" android:background="@color/white" android:gravity="center" style="@style/tab" android:textStyle="bold" android:textColor="@color/black" android:layout_marginRight="5dp" /> 
+4
source share
2 answers

In the end, I did it like this:

 TextView tvID = new TextView(this); tvID.setLayoutParams(new TableRow.LayoutParams(w_id, TableRow.LayoutParams.WRAP_CONTENT)); tvID.setPadding(5, 0, 0, 0); tvID.setTextSize(11); tvID.setText(sharedIDArt); artikliVrstica.addView(tvID); 


 TextView tvNazArt = new TextView(this); TableRow.LayoutParams tvNazArtParms = new TableRow.LayoutParams(w_naz, TableRow.LayoutParams.WRAP_CONTENT, 0.4f); tvNazArtParms.setMargins(5, 0, 0, 0); tvNazArt.setLayoutParams(tvNazArtParms); tvNazArt.setTextAppearance(this, android.R.style.TextAppearance_Large); tvNazArt.setText(NazivArt); artikliVrstica.addView(tvNazArt); 


 TextView tvKol = new TextView(this); TableRow.LayoutParams tvKolParms = new TableRow.LayoutParams(w_kol, TableRow.LayoutParams.WRAP_CONTENT, 0.3f); tvKolParms.setMargins(5, 0, 0, 0); tvKol.setLayoutParams(tvKolParms); tvKol.setTextAppearance(this, android.R.style.TextAppearance_Large); tvKol.setGravity(Gravity.RIGHT); tvKol.setText(kolicina); artikliVrstica.addView(tvKol); 


 TextView tvCena = new TextView(this); TableRow.LayoutParams tvCenaParms = new TableRow.LayoutParams(w_cen, TableRow.LayoutParams.WRAP_CONTENT, 0.3f); tvCenaParms.setMargins(5, 0, 10, 0); tvCena.setLayoutParams(tvCenaParms); tvCena.setTextAppearance(this, android.R.style.TextAppearance_Large); tvCena.setGravity(Gravity.RIGHT); tvCena.setText(cena); artikliVrstica.addView(tvCena); 


 TextView tvIzbris = new TextView(this); TableRow.LayoutParams tvIzbrParms = new TableRow.LayoutParams((w_izb-10), TableRow.LayoutParams.WRAP_CONTENT); tvIzbrParms.setMargins(10, 0, 5, 0); tvIzbris.setLayoutParams(tvIzbrParms); tvIzbris.setPadding(0, 7, 10, 7); tvIzbris.setTextAppearance(this, android.R.style.TextAppearance_Large); tvIzbris.setTypeface(null,Typeface.BOLD); tvIzbris.setTextColor(Color.BLACK); tvIzbris.setBackgroundColor(Color.WHITE); tvIzbris.setGravity(Gravity.CENTER); tvIzbris.setText("-"); artikliVrstica.addView(tvIzbris); 


The "w_ *" variables store the size of the "table header header" ...

+5
source

Try it, it can help

  TextView view = new TextView(this); view.setText("example textview "); //adding layout properties view.setLayoutParams(new LayoutParams(LayoutParams.FILL_PARENT,LayoutParams.WRAP_CONTENT)); // add the textview to the parentLayout parentLayout.addView(view); 

Related links: Dynamically add textViews to linearLayout

how to create dynamic text view in android?

Add TextView dynamically - Android

+1
source

Source: https://habr.com/ru/post/1489065/


All Articles