如何以编程方式为所有文本视图设置文本颜色?

时间:2014-10-22 05:32:11

标签: android textview

我正在动态创建8个TextView并在我的布局中添加它们。我想设置他们的文字颜色。所以我在color.xml中声明了颜色代码,我将其设置为:

txt1.setTextColor(getResources().getColor(R.color.off_white));

但我必须为所有TextView个人冗余地执行此操作。有没有办法我可以为所有TextView全局设置它。类似于我们在jQuery中可以做的事情,例如:

$('input[type="text"]').css('color','white');

3 个答案:

答案 0 :(得分:5)

您可以使用自定义TextView

如下所示:

MyTextView mTxt = new MyTextView(getApplicationContext());  //Use MyTextView instead of TextView where you want to apply color
mTxt.setText("Some text");

您的自定义类MyTextView类似于:

public class MyTextView extends TextView{

    public MyTextView(Context context) {
        super(context);
        // TODO Auto-generated constructor stub
        this.setTextColor(Color.GREEN); //change color as per your need here. 
    }
}

希望它有所帮助。

答案 1 :(得分:1)

您需要为其创建自定义文本视图,然后在任何地方使用该textview的实例。

示例 -

public class MyTextView extends TextView{

    public MyTextView(Context context) {
        super(context);
        // TODO Auto-generated constructor stub
    }

    public MyTextView(Context context, AttributeSet attrs) {
        super(context, attrs);
        // TODO Auto-generated constructor stub
    }

    public MyTextView(Context context, AttributeSet attrs, int defStyle) {
        super(context, attrs, defStyle);
        // TODO Auto-generated constructor stub
    }

    @Override
    protected void onDraw(Canvas canvas) {
        // TODO Auto-generated method stub
        super.onDraw(canvas);
        setTextColor(R.color.holo_orange_light);
    }

}

答案 2 :(得分:1)

您可以在XML文件中定义TextView,如下所示;

<TextView 
    android:text="My Text View"
    android:textColor="@color/myColor"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"/>

然后夸大此布局,您需要在代码中实例化TextView;

LayoutInflater layoutInflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
TextView tv1 = layoutInflater.inflate(R.layout.my_text_view, null);