У меня есть строка кода для выключают звука для всего приложенияКак отключить звук на кнопку переключения мыши для всего приложения
<item name="android:soundEffectsEnabled">false</item>
И это прекрасно работает, но я хочу, чтобы включить звук Включение/выключение нажмите кнопку переключения.
Итак, кто-нибудь предложит мне, что я могу сделать для изменения темы во время выполнения для всего приложения.
EDIT: ОБНОВЛЕНО КОД
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);
}
}
});
Изменить тему в Application Class
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, чтобы установить значение да, когда пользователь изменяет кнопки звукового сигнала, а затем где-либо использовать звук просто проверьте, является ли звуковое значение да ?. Это настойчиво и должно работать нормально? может просто взять некоторую кодировку. – Smashing
Я уже сделал это, пожалуйста, проверьте обновленный вопрос. –
@Garima - Call rereate() после setTheme() – Pankaj