Как установить атрибуты Textview программным способом? - PullRequest
0 голосов
/ 23 октября 2018

Как я могу установить значение для атрибутов для Textview программным способом из кода XML?

  <TextView
    android:layout_width="0dp"
    android:layout_height="match_parent"
    android:layout_margin="3dp"
    android:layout_weight="0.5"
    android:background="@color/colorPrimary"
    android:gravity="center"
    android:text="text1" />

  <TextView
    android:layout_width="0dp"
    android:layout_height="match_parent"
    android:layout_margin="3dp"
    android:layout_weight="0.5"
    android:background="@color/colorPrimary"
    android:gravity="center"
    android:text="text2" />

Ответы [ 3 ]

0 голосов
/ 23 октября 2018

Основная информация для вашего знания: каждое представление, которое вы принимаете в макете XML, на самом деле является объектом класса, который вы берете.Да, это классы, такие как LinearLayout, TextView, Button и т. Д.

Теперь, как сказано выше, это классы, поэтому для доступа к ним программным способом вы можете создать объект определенного вида, получить доступ и применить доступные методы:

Например:

TextView textView = new TextView(this);
textView.setText("Hello World!");
textView.setId(randomId);
textView.setLayoutParams(new LayoutParams(LayoutParams.MATCH_PARENT,LayoutParams.WRAP_CONTENT));
0 голосов
/ 23 октября 2018

, если вы хотите изменить ширину, высоту, гравитацию, ... вам нужно использовать объект LayoutParams вашего textView

https://developer.android.com/reference/android/view/ViewGroup.LayoutParams

0 голосов
/ 23 октября 2018
    TextView textView = new TextView(this);

    //set layout weight like this where 0.5 f is layout_weight
    LayoutParams params = new LinearLayout.LayoutParams(0, LayoutParams.WRAP_CONTENT, 0.5f); 
        params.setMargins(10, 0, 5, 0);
        textView.setLayoutParams(params);
        textView.setBackgroundColor(Color.WHITE);
        textView.setGravity(Gravity.CENTER);
        textView.setText("Text");
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...