在Android

时间:2016-09-27 17:51:02

标签: android colors textview

最近我改变了我的应用程序的一点点,因为我不理解" setTextColor"方法似乎不再适用。

在我的XML中,我有一个listview,我以编程方式在这个listView中添加TextView。

XML:

   <LinearLayout
        android:id="@+id/activity_game_layout"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_gravity="left|top"
        android:orientation="vertical"
        android:padding="7dp" >
    </LinearLayout>

爪哇:

textView = new TextView(getContext());
    textView.setText("some text");
    textView.setTextSize(20f);
    textView.setGravity(Gravity.CENTER);
    textView.setTextColor(Color.BLACK);
    textView.setTextAppearance(getContext(), android.R.style.TextAppearance_Medium);
    addView(textView);

但无论我做什么,这段文字都是白色的。 为什么呢?

4 个答案:

答案 0 :(得分:1)

使用以下命令以编程方式设置文本颜色:

textView.setTextColor(getResources().getColor(R.color.YOURCOLOR));

从支持库23开始,您必须使用以下代码,因为不推荐使用getColor:

textView.setTextColor(ContextCompat.getColor(context, R.color.YOURCOLOR));

请参阅:TextView setTextColor() not working

答案 1 :(得分:1)

我确实尝试过您的代码,我猜这个令人不安的因素是setTextAppearance。实际上,在此调用之后调用setTextColor()修复了该问题。以下代码对我来说非常合适:

        TextView textView = new TextView(this);
        textView.setText("some text");
        textView.setTextSize(20f);
        textView.setGravity(Gravity.CENTER);
        // textView.setTextColor(Color.RED);
        textView.setTextAppearance(this, android.R.style.TextAppearance_Medium);
        textView.setTextColor(Color.RED);
        // setContentView(textView);

我不知道这个问题的真正原因。

答案 2 :(得分:0)

您可以使用:

 ResourceCompact.getColor(getResources(), R.color.your_id, null);

不推荐使用getResources().getColor()方法。

答案 3 :(得分:0)

使用:

textView.setTextColor(Color.parseColor("#000000"));

而不是:

textView.setTextColor(Color.BLACK);