动态创建的Android TextView变为灰色

时间:2016-01-31 19:44:38

标签: android android-layout textview

所以我有一个LinearLayout然后在里面是ScrollView然后在里面是另一个RelativeLayout,最后在里面是另一个LinearLayout,ID为mylinearlayout

我想动态创建TextView's它工作正常,但文本似乎被禁用,如GRAY颜色。虽然我没有设置任何颜色.. 这是我的代码:

final LinearLayout linlayout = (LinearLayout) findViewById(R.id.mylinearlayout);
final TextView tv = new TextView(getApplicationContext());                          
tv.setTextSize(20);
tv.isEnabled();
tv.setGravity(Gravity.CENTER);
if(orderstatus.equals("Pending")) {
    tv.setText("OrderID: "+orderid + "\n"+"OrderDate: " + orderdate + "\n"  +"OrderStatus: "+orderstatus + " \n\n");
    tv.setId(i + 5);
    linlayout.addView(tv);
}

3 个答案:

答案 0 :(得分:0)

你表现不错,但错过了一刻。将视图添加到布局中时,视图会自动从当前系统样式设置颜色。如果您需要更改文本的颜色,请执行以下操作:

tv.setTextColor(YOUR_COLOR);

答案 1 :(得分:0)

  

使用此代码

linlayout = (LinearLayout) findViewById(R.id.mylinearlayout);
TextView tv = new TextView(getApplicationContext());
tv.setTextSize(20);
tv.isEnabled();
tv.setGravity(Gravity.CENTER);
if(orderstatus.equals("Pending"))
{
tv.setText("OrderID: "+orderid + "\n"+"OrderDate: " + orderdate + "\n"  +"OrderStatus: "+orderstatus + " \n\n");
tv.setId(i + 5);
tv.setTextColor(Color.BLACK);
linlayout.addView(tv);
}

答案 2 :(得分:0)

您的TextView文字可能会显示为灰色,因为它使用的是系统Theme,而不是您的Activity。您可以尝试在this构造函数中传递getApplicationContext()而不是TextView()。例如,Toast objects就是这样,也可能适用于小部件。