2016-11-04 18 views
-2

LinearLayoutの背景のDrawableリソースファイルを作成しました。そして、私はlayoutBackgroundLinearLayoutでsetBackgroundを呼び出すとNullPointerExceptionが発生する

Drawable d = getResources().getDrawable(R.drawable.theme_default_bg); 
layoutBackground.setBackground(d); 

、使用して MainActivityにDrawableの設定 LinearLayoutです。しかし、これを実行すると、 NullPointerExceptionが返されます。これをどうすれば解決できますか?

main.xmlファイルにxml backgroundを設定していました。私はこれを試してみてください...あなたはlayoutBackgroundを初期化していないあなたのケースでは。..

RelativeLayout layoutBackground =(RelativeLayout)findViewById(R.id.background); 

Drawable d = getResources().getDrawable(R.drawable.theme_default_bg); 

layoutBackground.setBackgroundResource(d); 
+0

レイアウトバックグラウンドがnull –

+0

レイアウトバックグラウンドが正しく初期化されていないと思われます。 – Sayem

+0

layoutBackgroundをコードで設定する方法とレイアウトのXMLで設定する方法を見てみましょう –

答えて

0

私は間違いを発見しました。私は申し訳ありません男、レイアウト私はsetBackしようとしている別のレイアウトファイル(activity_main.xml)にあります。だから私は、LayoutInflater,

LayoutInflater inflater = (LayoutInflater) getApplicationContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
View mainView = inflater.inflate(R.layout.activity_main, null); 

layoutBackground = (LinearLayout)mainView.findViewById(R.id.layout_bg); 

を使用してエラーを解決しました。私はあなたの時間を無駄にした皆さん、ごめんなさい。本当にごめんなさい。

1

から背景を設定しようとしたとき、私はこのエラーを得た:

layout.setBackgroundResource(R.drawable.theme_default_bg); 

の代わりにリソースをdrawableに変換しようとしています。

+0

ありがとうございます。申し訳ありませんが私はここでそれを食べていないが、私はレイアウトを初期化した。 – Malinda

+0

デバッグ時に実行して問題を見つけようとします –

1

だけ使用MainActivity.java

+0

ありがとうございます。私はそれを試みたが、私はまだNullPointException。 – Malinda

+0

レイアウトを初期化しましたか?レイアウト=(LinearLayout)のようにfindviewbyid(.....); – MichaelStoddart

+0

はい@MixhaelStoddart – Malinda

関連する問題