我为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
。还有另一种方法吗?
答案 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));