Задание разных цветов для разных видов текста в макете не работает - PullRequest
0 голосов
/ 26 февраля 2012

В настоящее время я настраиваю 3 вида текста, которые входят в LinearLayout (код ниже).Однако последний цвет, который назначается с помощью метода setColor, кажется, применяется только к первому текстовому просмотру и фактически перезаписывает цвет, который я изначально для него установил.

public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    //setContentView(R.layout.main);

    TextView view1 = new TextView(this);
    view1.setText("I am view one");
    view1.setTextColor(ColorStateList.valueOf(Color.RED));
    view1.setTextSize(25);
    view1.setGravity(Gravity.CENTER);

    TextView view2 = new TextView(this);
    view2.setText("I am view two");
    view1.setTextColor(ColorStateList.valueOf(Color.BLUE));
    view2.setTextSize(30);
    view2.setGravity(Gravity.CENTER);

    TextView view3 = new TextView(this);
    view3.setText("I am view three");
    view1.setTextColor(ColorStateList.valueOf(Color.YELLOW));
    view3.setTextSize(50);
    view3.setGravity(Gravity.CENTER);


    LinearLayout myLinearLayout = new LinearLayout(this);
    myLinearLayout.setOrientation(LinearLayout.VERTICAL);
    myLinearLayout.setLayoutParams(new LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT));
    myLinearLayout.setGravity(Gravity.CENTER);
    myLinearLayout.addView(view1);
    myLinearLayout.addView(view2);
    myLinearLayout.addView(view3);

    setContentView(myLinearLayout);

В этом случае view1 является желтым, а другие представления серыми ... красный и синий не применяются к правильным представлениям.Как примечание, я первоначально только что попытался использовать setColor и, как вы можете видеть, я пытался использовать ColorStateList в соответствии с документацией, но применяются те же результаты.Во всяком случае, как бы я мог заставить цвет, который я хочу на разных текстовых видах?Я знаю, что это должно быть легко, возможно, я просто что-то здесь упускаю.спасибо всем заранее.

1 Ответ

4 голосов
/ 26 февраля 2012

Обратите внимание на объекты, для которых вы устанавливаете цвета - кажется, что есть целая куча остатков копирования-вставки.Каждое назначение цвета выполняется на view1, тогда как вы действительно хотите установить цвет во втором назначении на view2, а в третьем на view3:

TextView view1 = new TextView(this);
view1.setText("I am view one");
view1.setTextColor(ColorStateList.valueOf(Color.RED));
view1.setTextSize(25);
view1.setGravity(Gravity.CENTER);

TextView view2 = new TextView(this);
view2.setText("I am view two");
view2.setTextColor(ColorStateList.valueOf(Color.BLUE)); // <-- view2
view2.setTextSize(30); 
view2.setGravity(Gravity.CENTER);

TextView view3 = new TextView(this);
view3.setText("I am view three");
view3.setTextColor(ColorStateList.valueOf(Color.YELLOW)); // <-- view3
view3.setTextSize(50);
view3.setGravity(Gravity.CENTER);

Кстатипростого вызова .setColor(Color.RED) (или другого цвета) для представлений должно быть достаточно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...