アプリが初めてロードされたときに実行する基本的なアラーム ダイアログがあります。「onOptionsItemSelected」でオプションが選択されるとアラートが表示され、時間のリストが読み込まれ、デフォルトで「4」が選択された「30 秒」が表示されます。
しかし、ユーザーがそれを開いて設定を変更せずに [OK] をクリックすると、「どの」が私の「notificationChoice」を 4 にする必要がありますが、それは 0 になります。実際に「どの」が 0 を返す位置を選択するまで。 「OK」を押し、通知を再度開き、「OK」をクリックするだけで、「どの」から正しい結果が得られます。これは意図したものですか、それとも何か間違っていますか?
private void changeNotificationTimer() {
SharedPreferences settings = PreferenceManager
.getDefaultSharedPreferences(this);
String[] timeModes = { "10 Seconds.", "15 Seconds.", "20 Seconds.",
"25 Seconds.", "30 Seconds.", "45 Seconds.", "1 Minute." };
final int timerPos = settings.getInt("timerPos", 4);
System.out.println("timerPos : " + timerPos);
// Where we track the selected item
AlertDialog.Builder builder = new AlertDialog.Builder(this);
// Set the dialog title
builder.setTitle("Set Notification Timer");
// Lets set up the single choice for the game mode.
builder.setSingleChoiceItems(timeModes, timerPos,
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
notificationChoice = which;
System.out.println("which : " + which);
}
})
.setPositiveButton("OK", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
System.out.println("notificationChoice : " + notificationChoice);
// Set the shared prefs.
if (timerPos != notificationChoice) {
System.out.println(timerPos + " != " + notificationChoice);
setSharedNotificationPrefs(notificationChoice);
}
}
}).create().show();
}