我的代碼關閉聲音整個應用程序如何關閉的切換按鈕點擊聲音整個應用程序
<item name="android:soundEffectsEnabled">false</item>
行,它工作正常,但我想通過把聲音開/關點擊切換按鈕。
所以,任何人都建議我,我可以在整個應用程序運行時更改主題。
編輯:更新的代碼
mToggleBtnSound.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
boolean on = ((ToggleButton) v).isChecked();
if (on) {
// Change Whole App Theme
MyApplication.changeToTheme(getApplicationContext(), MyApplication.THEME_SOUND_ON);
//Save state of toggle button yes or no
MyApplication.getAppliation().getDeviceResourceHandler()
.addToSharedPref(Constant.SHARED_PREF_IS_SOUND_ON, true);
} else {
MyApplication.changeToTheme(getApplicationContext(), MyApplication.THEME_SOUND_OFF);
MyApplication.getAppliation().getDeviceResourceHandler()
.addToSharedPref(Constant.SHARED_PREF_IS_SOUND_ON, false);
}
}
});
更改主題爲應用類
package com.my.app;
import android.content.Context;
import com.my.app.MyApplication;
public class MyApplication extends Application {
private static int sTheme;
public final static int THEME_SOUND_ON = 0;
public final static int THEME_SOUND_OFF = 1;
@Override
public void onCreate() {
super.onCreate();
}
public static void changeToTheme(Context context, int theme) {
sTheme = theme;
switch (sTheme) {
default:
case THEME_SOUND_ON:
context.setTheme(R.style.AppSoundOnTheme);
break;
case THEME_SOUND_OFF:
context.setTheme(R.style.AppSoundOffTheme);
break;
}
}
}
當用戶改變聲音按鈕,爲什麼不使用sharedpreferences的值設置爲yes,然後你在哪裏都使用聲音只是檢查聲音值是否?這是持久的,應該可以正常工作嗎?可能只需要一些編碼。 – Smashing
我已經這樣做了,請檢查更新後的問題。 –
@Garima - 在setTheme()之後調用recreate() – Pankaj