1

メイン アクティビティの画像の背景を変更する radioButton グループを持つアプリケーションを開発中です。解決できないように見える1つの問題でうまく機能しています。

画面を切り替えたり、アプリを再起動したりした後、背景は常にデフォルトでホロの背景に戻ります。ラジオ ボタンは、drawables のセレクター xml を使用して適切に押すように設定されており、画像は問題なく切り替わりますが、固執しません。また、すべての画面でラジオボタンを再作成せずに、これをすべてのクラスに分散するにはどうすればよいですか?

ここにラジオボタンの私のコードがあります

public class MainActivity extends Activity {

private final String TAG = "Main Activity";

Button rButton2;
Button rButton1;
Button rButton;
Button mButton;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);             
      final RelativeLayout ll=(RelativeLayout) findViewById(R.id.RelativeLayout);
      rButton2 = (Button) findViewById(R.id.radio2);
      rButton1 = (Button) findViewById(R.id.radio0);
      rButton = (Button) findViewById(R.id.radio1);
      rButton.setOnClickListener(new OnClickListener() {

            public void onClick(View v) {
                Log.i(TAG, "onStart");
                ll.setBackgroundResource(R.drawable.background1);
          }
        });

      rButton1.setOnClickListener(new OnClickListener() {     

          public void onClick(View v) {
                Log.i(TAG, "onStart");
                ll.setBackgroundResource(R.drawable.background);    
          }
        });

      rButton2.setOnClickListener(new OnClickListener() {     

          public void onClick(View v) {
                Log.i(TAG, "onStart");
                ll.setBackgroundResource(R.drawable.background2);   
          }
        }); 
}
4

1 に答える 1

2

設定を保存するまず、設定を保存する必要があります。そのためにSharedPreferencesを使用します。

次に、コードから背景を設定する必要があります。すべてのアクティビティに初期化コードを追加するか、スタイルを定義します。

オプション 1: アクティビティのバックグラウンドを初期化します。onCreate()すべてのアクティビティの中で、SharedPreferences から取得した値を使用してメソッドを呼び出しますsetBackgroundResource

オプション 2: テーマを作成します。選択したホロ テーマに基づいてテーマを作成しonCreate()、アクティビティの に設定します。それを行う方法の例は、この投稿で説明されています: How to change current Theme at runtime in Android

テーマ切り替えのコツは次のとおりです: Android アクティビティを再起動するにはどうすればよいですか( を呼び出す必要がありますrecreate())

于 2013-08-30T13:33:24.613 に答える