1

私はアラーム アプリケーションで作業しています。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] ボタンを押しても正しく実行されません。何か案は?

ありがとうございました!

4

0 に答える 0