我正在动态创建8个TextView
并在我的布局中添加它们。我想设置他们的文字颜色。所以我在color.xml中声明了颜色代码,我将其设置为:
txt1.setTextColor(getResources().getColor(R.color.off_white));
但我必须为所有TextView
个人冗余地执行此操作。有没有办法我可以为所有TextView全局设置它。类似于我们在jQuery中可以做的事情,例如:
$('input[type="text"]').css('color','white');
答案 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);