android 夜间模式
来源:互联网 发布:网络在线客服做什么的 编辑:程序博客网 时间:2024/06/05 23:57
SharedPreferrenceHelper
public class SharedPreferrenceHelper { private static final String THEME = "theme"; public static void settheme(Context context, String theme){ SharedPreferences sp = context.getSharedPreferences("demo",Context.MODE_PRIVATE); SharedPreferences.Editor editor = sp.edit(); editor.putString(THEME,theme); editor.apply(); } public static String gettheme(Context context){ SharedPreferences sp = context.getSharedPreferences("demo",Context.MODE_PRIVATE); return sp.getString(THEME,"1"); }}
utils
public class utils { public static int getAppTheme(Context context){ String value = SharedPreferrenceHelper.gettheme(context); switch (Integer.valueOf(value)){ case 1: return R.style.AppTheme; case 2: return R.style.AppThemeDark; default: return R.style.AppTheme; } } public static void switchAppTheme(Context context){ String value = SharedPreferrenceHelper.gettheme(context); switch (Integer.valueOf(value)){ case 1: SharedPreferrenceHelper.settheme(context,"2"); break; case 2: SharedPreferrenceHelper.settheme(context,"1"); break; default: SharedPreferrenceHelper.settheme(context,"1"); break; } }}
BaseActivity
public abstract class BaseActivity extends FragmentActivity { TextView mTextView; private int theme = 0; private static final String TAG = "MainActivity"; @Override protected void onResume() { Log.d(TAG,"onResume"); super.onResume(); if(theme==utils.getAppTheme(this)){ }else{ reload(); } } @Override protected void onDestroy() { super.onDestroy(); Log.d(TAG,"onDestroy"); } @Override protected void onSaveInstanceState(Bundle outState) { super.onSaveInstanceState(outState); outState.putInt("theme",theme); } @Override protected void onCreate(Bundle savedInstanceState) { if(savedInstanceState==null){ theme=utils.getAppTheme(this); }else{ theme=savedInstanceState.getInt("theme"); } setTheme(theme); super.onCreate(savedInstanceState); Log.d(TAG,"onCreate"); //setContentView(R.layout.activity_main); setView(); } abstract void setView(); public void reload() { Intent intent = getIntent(); overridePendingTransition(0, 0);//不设置进入退出动画 intent.addFlags(Intent.FLAG_ACTIVITY_NO_ANIMATION); finish(); overridePendingTransition(0, 0); startActivity(intent); } @Override protected void onRestart() { super.onRestart(); Log.d(TAG, "onRestart"); } @Override protected void onPause() { super.onPause(); Log.d(TAG,"onPause"); }}style
<resources> <!-- Base application theme. --> <style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar"> <!-- Customize your theme here. --> <item name="colorPrimary">@color/colorPrimary</item> <item name="colorPrimaryDark">@color/colorPrimaryDark</item> <item name="colorAccent">@color/colorAccent</item> </style> <style name="AppThemeDark" parent="Theme.AppCompat"></style></resources>
MainActivity
public class MainActivity extends BaseActivity { private Button btn1; @Override void setView() { setContentView(R.layout.activity_main); btn1= (Button) findViewById(R.id.btn); btn1.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { utils.switchAppTheme(MainActivity.this); reload(); } }); }}
阅读全文
0 0
- android 浏览器夜间模式
- Android 夜间模式实现
- Android夜间模式实现
- Android夜间模式实现
- Android 实现夜间模式
- Android夜间模式初探
- android 夜间模式设置
- Android实现夜间模式
- Android实现夜间模式
- android夜间模式实现
- Android夜间模式实现
- Android实现夜间模式
- Android夜间模式实践
- android 夜间模式
- Android中的夜间模式实现
- android夜间模式的实现
- Android实现夜间模式小结
- android夜间模式实现方式
- 设计模式-工厂方法
- 记一次thinkphp传到主机 路径无法正常调用的问题
- 3D NAND时代,哪些技术可提升PCIe SSD性能?
- MySQL函数
- 关于nginx配置成功后,本地主机无法访问的问题:
- android 夜间模式
- 动态改变div位置
- struts2中各个jar包作用
- 深拷贝与浅拷贝
- WPF下 使用它tabcontrol控件 时遇到的指定控件获得焦点的问题
- 基于EKF的IMU姿态结算
- CocoaPod的使用
- :eq()选择器
- Http2.0你知道多少?