Как изменить тему внутри приложения для Android? У меня есть активность с настройками, где я могу выбрать тему «Свет» или «Темная».Android Change Theme Inside App
Настройки активности Могу ли я использовать что-то вроде этого:
public class OTGEnabler extends AppCompatActivity
implements NavigationView.OnNavigationItemSelectedListener
{
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_otgenabler);
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout);
ActionBarDrawerToggle toggle = new ActionBarDrawerToggle(
this, drawer, toolbar, R.string.navigation_drawer_open, R.string.navigation_drawer_close);
drawer.setDrawerListener(toggle);
toggle.syncState();
NavigationView navigationView = (NavigationView) findViewById(R.id.nav_view);
navigationView.setNavigationItemSelectedListener(this);
SharedPreferences sharedPrefs = PreferenceManager.getDefaultSharedPreferences(this);
String theme = sharedPrefs.getString("Choose Theme",null);
if(theme != null && theme.equals("Light"))
{
setTheme(R.style.AppTheme);
}
else
{
setTheme(R.style.AppTheme_AppBarOverlay);
}
}
}
Вот журнал ошибок:
02-04 07: 16: 40,023 23924-23924/ком. example.pavle.usbotgenabler E/AndroidRuntime: FATAL EXCEPTION: main Процесс: com.example.pavle.usbotgenabler, PID: 23924 java.lang.RuntimeException: Невозможно запустить активность ComponentInfo {com.example.pavle.usbotgenabler/com.example.pavle.usbotgenabler.otg_enaber.OTGEnabler}: java.lang.IllegalStateException: Эта деятельность уже имеет действие бар поставляемый декором окна. Не запрашивайте Window.FEATURE_SUPPORT_ACTION_BAR и установите для окна WindowActionBar значение false в вашей теме, чтобы использовать панель инструментов. на android.app.ActivityThread.performLaunchActivity (ActivityThread.java:2416) на android.app.ActivityThread.handleLaunchActivity (ActivityThread.java:2476) на android.app.ActivityThread.-wrap11 (ActivityThread.java) на android.app.ActivityThread $ H.handleMessage (ActivityThread.java:1344) на android.os.Handler.dispatchMessage (Handler.java:102) на android.os.Looper.loop (Looper.java:148) на android.app.ActivityThread.main (ActivityThread.java:5417) на java.lang.reflect.Metho d.invoke (родной метод) at com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run (ZygoteInit.java:726) at com.android.internal.os.ZygoteInit.main (ZygoteInit.java:616) Caused by: java.lang.IllegalStateException: Эта активность уже имеет панель действий, предоставляемую декором окна. Не запрашивайте Window.FEATURE_SUPPORT_ACTION_BAR и установите для окна WindowActionBar значение false в вашей теме, чтобы использовать панель инструментов. на android.support.v7.app.AppCompatDelegateImplV9.setSupportActionBar (AppCompatDelegateImplV9.java:203) на android.support.v7.app.AppCompatActivity.setSupportActionBar (AppCompatActivity.java:133) в com.example.pavle .usbotgenabler.otg_enaber.OTGEnabler.onCreate (OTGEnabler.java:80) на android.app.Activity.performCreate (Activity.java:6237) на android.app.Instrumentation.callActivityOnCreate (Instrumentation.java:1107) на android.app.ActivityThread.performLaunchActivity (ActivityThread.java:2369) в android.app.ActivityThread.handleLaunchActivity (ActivityThread.java:2476) в android.app.ActivityThread.-wrap11 (ActivityThread.java) в android.app.ActivityThread $ H.handleMessage (ActivityThread.java:1344) at android.os.Handler.dispatchMessage (Handler.java:102) на android.os.Looper.loop (Looper.java:148) на android.app.ActivityThread.main (ActivityThread.java:5417) на java.lang.reflect.Method. вызова (Native Method) на com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run (ZygoteInit.java:726) в com.android.internal.os.ZygoteInit.main (ZygoteInit.java:616)
Что происходит с вашим кодом? – Raghunandan
Когда я запустил приложение, приложение перестало работать !!! – pavlenis1906
, тогда его авария отправляет соответствующие журналы – Raghunandan