I have to set the background programmatically on Android TextView
I have using below code. it's not working and also its gave me nullpointerexception error.
best_deals = (TextView) findViewById(R.id.bestdeals);
best_deals.setBackground(getResources().getDrawable(
R.drawable.headerradius));
but I have to put these
best_deals.setTextColor(Color.parseColor("#be2351"));
means it's working
what's wrong in above code?
This is my header_redius.xml:
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle" android:padding="10dp">
<solid android:color="#000000"/>
<corners
android:radius="15dp"
/>
<gradient
android:startColor="#434343"
android:centerColor="#434343"
android:endColor="#434343"
android:angle="270"
android:type="linear"
/>
<padding android:left="10dp"
android:top="0dp"
android:right="10dp"
android:bottom="0dp"/>
<stroke
android:width="2dp"
android:color="#000000" />
</shape>
textview. setBackground((Drawable)findViewById(R. drawable. cellborder));
You need to use setBackgroundResource()
method.
For example :
best_deals.setBackgroundResource(R.drawable.headerradius);
More about setBackgroundResource().
The Final code that worked
The older API than JELLYBEAN have different way to load drawable programatically. Try this:
final int sdk = android.os.Build.VERSION.SDK_INT;
if(sdk < android.os.Build.VERSION_CODES.JELLY_BEAN) {
textView.setBackgroundDrawable(getResources().getDrawable(R.drawable.shape_rect_outline));
} else {
textView.setBackground(getResources().getDrawable(R.drawable.shape_rect_outline));
}
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With