短編小説:
Web リクエストが成功すると、別のレイアウト「success.xml」に置き換えられるレイアウト「layout.xml」があります。どちらのレイアウトにも、ImageView
レイアウトに背景を提供する があります。これら 2 つの背景は両方とも同じである必要があり、どちらもユーザーの好みに依存します。
長い話:これはすべて、Web 要求の後でcontentView を "success.xml" に置き換えるFragmnet
ことで発生します。これは次のように発生します。AsyncTask
onPostExecute
View view = getView();
view = null;
view = View.inflate(context, R.layout.success, null);
私がやろうとしたことは、両方ImageView
に次android:id="@+id/background_image"
を与えてから呼び出すことです
ImageView background = (ImageView)view.findViewById(R.id.background_image);
background.setImageResource(R.drawable.bg1);
この背景設定は初期ビュー (layout.xml) で機能しますが、「success.xml」に変更しようとすると、background
null であるため NullPointException が発生します。
確認したところ、ビューの ID は -1 に設定されていますが、元のビューのbackground_image
ID は適切で有効なものに設定されています。
また、2番目のビューの背景IDを次のように設定しようとしました: android:id="@id/background_image"
、つまり「+」なしで、まだ運がありません。
追加の複雑さは、これを行う必要があるのは 2 つのレイアウトだけでなく、約 5 つであるため、ビュー ID をリサイクルすると非常に便利です。
どんな助けでも大歓迎です。