0
ボタンのクリックでアプリケーションテーマを変更するクラスファイルがあり、MainActivityがテーマを選択したままにするときにテーマを変更するはずです。スイッチを使用してAppThemeの変更を保持する
テーマは、暗いテーマが適用されているアプリを再起動した後にデフォルトのライトテーマにリセットされます(暗いテーマと明るいテーマのオプションがあります)。
誰かが自分のコードを見たり、ちょうど何かを提案してもらえますか?何か助けていただければ幸いです。
public class themeUtils {
private static int cTheme;
public final static int DARK = 1;
public final static int LIGHT = 0;
public static void changeToTheme(Activity activity, int theme)
{
cTheme = theme;
activity.finish();
activity.startActivity(new Intent(activity, activity.getClass()));
}
public static void onActivityCreateSetTheme(Activity activity)
{
switch (cTheme)
{
default:
case LIGHT:
activity.setTheme(R.style.AppTheme_NoActionBar);
break;
case DARK:
activity.setTheme(R.style.AppTheme_NoActionBar_Dark);
break;
}
}
}
、以前に選択したテーマを保持することになっているMainActivity
起動時にライン。テーマ
@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {
int title = getArguments().getInt("title");
AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
return builder
.setTitle("Theme")
.setNegativeButton("Dark", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface arg0, int arg1) {
themeUtils.changeToTheme(getActivity(), themeUtils.DARK);
}
})
.setPositiveButton("Light", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface arg0, int arg1) {
themeUtils.changeToTheme(getActivity(), themeUtils.LIGHT);
}
})
.create();
}
}
sharedPreferenceでアクティブなテーマを保存してonCreateに適用することができます – Berkay92
助けてくれてありがとうございます@ Berkay92 –