在我的Android应用中,有两个带有main.xml和settings.xml的Activity(主要和设置)。我想在设置中创建一个RadioGroup,它像用户的设置面板一样工作,因此他们可以选择Backgroundcolor of Buttons。我正在尝试使用每个RadioButton的onClick,它运行良好,但如果我回到main.xml,颜色不会保存。如何在其他活动中为按钮设置BackgroundColor创建设置面板并保存(或者为用户保存按钮)?
此处,设置'代码:
public class Settings extends Main implements OnCheckedChangeListener {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.settings);
final Button back;
back= (Button) findViewById(R.id.back);
RadioButton redbtn, blubtn, grebtn;
redbtn= (RadioButton) findViewById(R.id.redbtn);
blubtn= (RadioButton) findViewById(R.id.blubtn);
grebtn= (RadioButton) findViewById(R.id.grebtn);
redbtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
back.setBackgroundColor(Color.RED);
add.setBackgroundColor(Color.RED);
}
});
back.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
finish();
}
});
}
@Override
public void onCheckedChanged(RadioGroup arg0, int arg1) {
// TODO Auto-generated method stub
}
}
的settings.xml:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent" >
<TextView
android:id="@+id/title_settings"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_alignParentRight="true"
android:layout_alignParentTop="true"
android:text="@string/settings"
android:textSize="40sp" />
<TextView
android:id="@+id/ButtonSettingsView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_below="@+id/title_settings"
android:layout_marginTop="17dp"
android:text="@string/BtnSet"
android:textSize="30sp" />
<Button
android:id="@+id/back"
android:layout_width="70sp"
android:layout_height="70sp"
android:layout_alignBaseline="@+id/title_settings"
android:layout_alignBottom="@+id/title_settings"
android:layout_alignRight="@+id/ButtonSettingsView"
android:text="Back"/>
<RadioGroup
android:id="@+id/ButtonSettings"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_below="@+id/ButtonSettingsView"
android:layout_marginTop="14dp"
android:orientation="vertical" >
<RadioButton
android:id="@+id/redbtn"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/red"/>
<RadioButton
android:id="@+id/blubtn"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/blue" />
<RadioButton
android:id="@+id/grebtn"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/grey"/>
</RadioGroup>
</RelativeLayout>
由于
答案 0 :(得分:0)
当然它不会为其他Activities
保存它,因为当你启动另一个Activity
时,Activities
将使用xml中的默认值。您需要以某种方式保存颜色,然后在其他Activites
中引用它。实现此目的的一种方法是,如果您希望在用户离开并重新启动应用程序时保留它,则使用SharedPreferences。然后,您可以在其他static
中打开这些首选项,保存值,并相应地更改背景。
如果您只希望它更改用户当前在应用程序中的时间的颜色,那么您可以创建一个{{1}}类来存储此变量并根据该值更改颜色。