Java 使用单选按钮设置窗口背景

Java 使用单选按钮设置窗口背景,java,android,eclipse,Java,Android,Eclipse,我有一个我正在开发的应用程序,它有一个radioButton组,可以更改我主要活动的图像背景。它很好地解决了一个我似乎无法解决的问题 切换屏幕或重新启动应用程序后,背景始终默认为全息背景。单选按钮设置为在drawables和图像中使用选择器xml正确按下 完美切换,但不要粘在一起。还有,我如何在不重新创建每个屏幕上的单选按钮的情况下将其传播到所有类 这是我单选按钮的代码 public class MainActivity extends Activity { private final Str

我有一个我正在开发的应用程序,它有一个radioButton组,可以更改我主要活动的图像背景。它很好地解决了一个我似乎无法解决的问题

切换屏幕或重新启动应用程序后,背景始终默认为全息背景。单选按钮设置为在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);   
          }
        }); 
}

保存您的首选项首先,您需要保存设置。用这个

其次,您需要从代码中设置背景。将初始化代码添加到所有活动或定义样式

选项1:在活动中初始化背景。在所有活动的
onCreate()
中,使用从SharedReferences中检索的值调用
setBackgroundResource
方法

选项2:创建主题。根据您选择的全息主题进行创建,并将其设置在活动的
onCreate()
中。这篇文章中描述了如何做到这一点的示例:


这里有一个切换主题的技巧:(你应该调用
recreate()

谢谢你的回答,所以如果我用样式为每个单选按钮创建了一个主题,我就可以在那里设置我的图像背景了?是的,但是设置主题有点棘手。如果你遇到问题,那就搜索一下,有很多问题可以回答。另外,请记住文档中的注释:Yom必须在创建任何视图之前调用setTheme(),也就是说,在调用setContentView()之前。此外,这可能不适用于已创建的活动,但下次启动活动时,它将被激活。哈哈,谢谢。我一直想知道人们接受答案是什么意思。