みなさん、こんにちは!setSingleChoiceItemsの値がアクティビティの終了後に固まらない
私は修正できないような私のアプリには奇妙な問題があります。それは論理エラーでなければならないが、私は何とかそれをキャッチすることができない。ここで
は私のコード
public String[] str={"Disabled","Sound Quality Prefered","Bass Prefered","Battery Prefered",};
public int ThemePresetValue = 0;
private int SelectedThemePresetValue = 0;
public void presets() {
AlertDialog.Builder alertDialog = new AlertDialog.Builder(this);
alertDialog.setTitle("Select Your Sound Preset");
alertDialog.setNegativeButton("Cancel", null);
alertDialog.setPositiveButton("Select", themePresetDialogPositiveListener);
alertDialog.setSingleChoiceItems(str, ThemePresetValue, PresetListListener);
alertDialog.show();}
DialogInterface.OnClickListener PresetListListener =
new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
SelectedThemePresetValue = which;
}
};
DialogInterface.OnClickListener themePresetDialogPositiveListener =
new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
mPreset = "";
ThemePresetValue = SelectedThemePresetValue;
if (ThemePresetValue == 0) {
mPreset = "Disabled";
} else if (ThemePresetValue == 1) {
mPreset = "Sound Quality Prefered";
} else if (ThemePresetValue == 2) {
mPreset = "Bass Prefered";
} else if (ThemePresetValue == 3) {
mPreset = "Battery Prefered";
}
if (mPreset.equals("Disabled")) {
disabler();
} else if (mPreset.equals("Sound Quality Prefered")) {
SoundQPreset();
} else if (mPreset.equals("Bass Prefered")) {
bassPreset();
} else if (mPreset.equals("Battery Prefered")) {
batteryPreset();
}
}
};
ある問題は、私は、プリセットのいずれかを選択した後、アプリが(MainActivityを再起動または殺さ)マルチタスクから閉じられるまでの選択肢がこだわっていることです。その後、私がアプリケーションを再び開くと、ダイアログの選択が0( "Disabled")に再設定されます。
どうしてですか?解決策はありますか?
thanks mate!私はsharedPreferences(私は既にスイッチでそれを使用しています)を使用しなければならないと思っていましたが、正しい実装を知らなかったのです! – androidexpert35
getapplicationContextでnull pointerExcemptionが発生しています... – androidexpert35
@ androidexpert35アクティビティや他のContextのサブクラスから呼び出していることを確認してください。 – user8