web-dev-qa-db-ja.com

Androidでドローアブルからテキストビューの背景をプログラムで作成

プログラムで背景を設定する必要がありますAndroid TextView

以下のコードを使用しています。それは機能しておらず、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>
_
11
user2218667

setBackgroundResource()メソッドを使用する必要があります。

例えば ​​:

best_deals.setBackgroundResource(R.drawable.headerradius);

setBackgroundResource()。 の詳細

47
Hardik Joshi

動作した最終コード

JELLYBEANより古い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));
        }
1
Rahul Raina