2013-07-20 109 views
4

TextView的背景下,我必須編程設置背景Android上的TextView編程創建繪製在android系統

我一直在使用下面code.its沒有工作,也是它給了我NullPointerException異常錯誤。

best_deals = (TextView) findViewById(R.id.bestdeals); 
best_deals.setBackground(getResources().getDrawable(
             R.drawable.headerradius)); 

,但我必須把這些

best_deals.setTextColor(Color.parseColor("#be2351"));意味着其工作

什麼是錯在上面的代碼??? 請給我的解決方案來..

這是我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> 

回答

26

您需要使用setBackgroundResource()方法。

例如:

best_deals.setBackgroundResource(R.drawable.headerradius); 

更多setBackgroundResource().

+1

感謝給我這樣一個很好的解決方案。我已經嘗試了這些solution.but我的ID是wrong.that就是爲什麼我得到空指針錯誤exception.now我得到的output.thanks。 – user2218667

+0

很高興幫助。如果你解決它然後接受答案。 –

0

奏效

比豆形軟糖老API最後的代碼有不同的方式來加載繪製編程。試試這個:

 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)); 
     }