3

これが私のアプリケーションの短いスケッチです

...
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.start);

    ... //at this place, getWindow().setBackgroundDrawableResource(int resid)
        //would work perfectly

    mainView();

}

void mainView() {
   setContentView(R.layout.main);

   ...

   if (...) {
     getWindow().setBackgroundDrawableResource(R.drawable.anyDrawable);
   }

   ...

}

しかし、mainView()では、そのメソッドは何も影響しません。そして、例外はスローされません。

main.xmlはすでに背景画像を定義していますが、start.xmlはそれを行いません。これは私の問題を引き起こす可能性がありますか?

または、別の方法で背景画像を変更できますか?

4

1 に答える 1

1

PSコンテンツビューを複数回設定することはできません。あなたがすべきことは、レイアウトでmainのようなIDを持つ親ビューを持ってから使用することです

findViewById(R.id.main).setBackgroundDrawableResource(R.drawable.anyDrawable);

xmlレイアウトでは、設定するビューのIDを設定する必要があります(これは最上位のビューである必要があります)

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    android:padding="16dip" 
    android:id="@+id/main"></LinearLayout>

ビューにIDを追加したら、レイアウトを保存してプロジェクトをビルドする必要があります

あなたがあなたのxmlコードとあなたのレイアウトの名前も投稿したいなら、私はあなたのためにもっと書くことができます

于 2012-06-07T13:55:47.590 に答える