私はアラーム アプリケーションで作業しています。TimePickerDialog に 2 つのボタン ([OK] と [キャンセル]) を表示したいのですが、このコードを使用して、[OK] ボタンをクリックしたときに現在の時刻を取得します。
ダイアログを表示するコード:
final TimePickerDialog pic = new TimePickerDialog(
TimerSettingsActivity.this,
android.R.style.Theme_Holo_Dialog_NoActionBar,
timePickerCallback, hour, minute, true);
pic.setTitle(getResources().getString(R.string.dialog_time_title));
pic.setButton(DatePickerDialog.BUTTON_POSITIVE, "OK",
new DatePickerDialog.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
if (which == DialogInterface.BUTTON_POSITIVE)
mIsClickOkButton = true;
}
});
pic.setButton(DatePickerDialog.BUTTON_NEGATIVE, "Cancel",
new DatePickerDialog.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
if (which == DialogInterface.BUTTON_NEGATIVE) {
mIsClickOkButton = false;
}
}
});
pic.setOnDismissListener(new OnDismissListener() {
@Override
public void onDismiss(DialogInterface dialog) {
}
});
pic.show();
Set time リスナーは次のとおりです。
OnTimeSetListener timePickerCallback = new OnTimeSetListener() {
@Override
public void onTimeSet(TimePicker view, int hourOfDay, int minute) {
if (mIsClickOkButton) {
// Save time to pref
String pref_time = String.valueOf(hourOfDay) + ","
+ String.valueOf(minute);
mEditor.putString(Common.PREFS_TIME, pref_time);
mEditor.commit();
mTxtTime.setText(Common.createTimeStringToShow(hourOfDay,
minute));
}
}
};
LG Optimus G を使用してテストしました。正常に実行されました。この却下の動作は [OK] ボタンを押した => onTimeSet です。
しかし、顧客 (Samsung デバイス) 向けにこのアプリをリリースしたときに、[OK] ボタンを押しても正しく実行されません。何か案は?
ありがとうございました!