2017-03-21 9 views
1

ボタンのイメージリソースを変更することを目指しています。方向を変更しなければ、正しく動作しますが、向きを変更した場合、画像リソースは設定されません(または更新されない可能性があります)。 DebugModeで、画面の向きが変更されても、次のコード(toggleButtonメソッド)が常に実行されることがわかりました。 buttonIconIDも常に正しいです。問題は、ボタンの画像リソースが向きを変更した後に設定されていないことです。方向変更後にButtonのImageResourceを設定できません

​​

TopBarコンストラクタ:TopBarで

public TopBar(MainActivity mainActivity) { 
    this.mainActivity = mainActivity; 

    mButton = (ImageButton) mainActivity 
      .findViewById(R.id.toggleButton); 
    mButton.setOnTouchListener(this); 
    ... 
} 

トグルボタン方法:あなたの助けのための

public void toggleButton(final int buttonIconID) { 
    mainActivity.runOnUiThread(new Runnable() { 

     @Override 
     public void run() { 
       mButton.setImageResource(buttonIconID); 
     } 
    }); 
} 

ありがとう!

答えて

0

オリエンテーションを変更するたびにActivityが再作成されます。したがって、方向を変更すると、すべてのビューが標準設定(またはonCreate()/onResume()などの方法で設定した設定)にリセットされます。

したがって、向きを変更した後にプログラムで設定した画像リソースを保持する場合はデータをバッファして、onCreate()またはonResume()メソッドで再度設定する必要があります。

関連する問題