最近我改变了我的应用程序的一点点,因为我不理解" 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);
但无论我做什么,这段文字都是白色的。 为什么呢?
答案 0 :(得分:1)
使用以下命令以编程方式设置文本颜色:
textView.setTextColor(getResources().getColor(R.color.YOURCOLOR));
从支持库23开始,您必须使用以下代码,因为不推荐使用getColor:
textView.setTextColor(ContextCompat.getColor(context, R.color.YOURCOLOR));
答案 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);