我有一个正在处理的应用程序,它有一个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);
}
});
}
答案 0 :(得分:2)
保存您的偏好首先,您需要保存设置。请使用SharedPreferences。
其次,你需要从代码中设置你的bakground。将初始化代码添加到所有活动或定义样式。
选项1:初始化活动中的背景。在所有活动的onCreate()
中,使用从SharedPreferences检索的值调用setBackgroundResource
方法。
选项2:创建主题。根据您选择的Holo主题创建themes,并将其设置在您的活动的onCreate()
中。本文介绍了如何执行此操作的示例:How to change current Theme at runtime in Android
以下是主题切换的技巧:How do I restart an Android Activity(您应该致电recreate()
)