以编程方式设置TextView背景

时间:2015-08-30 20:17:11

标签: java android android-drawable

我为TextView定义了背景:

<?xml version="1.0" encoding="utf-8"?>
<shape
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape= "rectangle"  >
    <solid android:color="#000"/>
    <stroke android:width="1dp"  android:color="#ff9"/>
</shape>

现在我正尝试以编程方式将其设置为TextView

textview.setBackground((Drawable)findViewById(R.drawable.cellborder));

这不起作用,它告诉我它不能将View强制转换为Drawable。还有另一种方法吗?

3 个答案:

答案 0 :(得分:2)

尝试像这样设置drawable

textview.setBackgroundDrawable( getResources().getDrawable(R.drawable.cellborder) );

访问以获取更多帮助。 set background drawable programmatically in Android

答案 1 :(得分:0)

你必须使用

getResources().getDrawable(R.drawable.cellborder);

将返回Drawable

如果您使用findViewById(),它会尝试在视图层次结构中找到View并返回该值。 View不是Drawable,因此您无法投放它。

答案 2 :(得分:0)

如果您想要向后兼容,请使用以下textView.setBackground(ContextCompat.getDrawable(MainActivity.this,R.drawable.cellborder));
将MainActivity.this替换为您从哪里调用这些方法的活动名称。如果您从Pijamas活动中致电textView.setBackground(...),请执行以下操作 textView.setBackground(ContextCompat.getDrawable(Pijamas.this, R.drawable.cellborder));