1

開始時間ピッカーからユーザー設定時間を取得し、終了時間ピッカーからユーザー設定時間を取得する必要があるアプリを作成しています。次に、開始時刻と終了時刻を現在の時刻と比較します。現在の時刻が開始時刻と等しい場合、電話は無音になります。終了時間が現在の時間と等しい場合は、電話の無音を解除します。どんな助けでも、特にコード例は大歓迎です。ありがとうございます。

public TimePickerDialog.OnTimeSetListener sTimeSetListener = new TimePickerDialog.OnTimeSetListener() {
        public void onTimeSet(TimePicker view, int hourOfDay, int minute) {
            sHour = hourOfDay;
            sMinute = minute;
            updateDisplay();
            displayToast();

        }
    };

    public TimePickerDialog.OnTimeSetListener eTimeSetListener = new TimePickerDialog.OnTimeSetListener() {
        public void onTimeSet(TimePicker view, int hourOfDay, int minute) {
            eHour = hourOfDay;
            eMinute = minute;
            updateDisplayE();
            displayToastE();

        }
    };

    public void updateDisplay() {
        startTime.setText(new StringBuilder().append(pad(sHour)).append(":")
                .append(pad(sMinute)));
        final int compareStartHour = sHour;
        Log.e("beginning", "Value " + sHour);
    }

    public void updateDisplayE()
 {
        endTime.setText(new StringBuilder().append(pad(eHour)).append(":")
                .append(pad(eMinute)));
    }

    private void displayToast() {
        Toast.makeText(
                this,
                new StringBuilder().append("Time choosen is ").append(
                        startTime.getText()), Toast.LENGTH_SHORT).show();

    }

    private void displayToastE() {
        Toast.makeText(
                this,
                new StringBuilder().append("Time choosen is ").append(
                        endTime.getText()), Toast.LENGTH_SHORT).show();

    }

    private static String pad(int c) {
        if (c >= 10)
            return String.valueOf(c);
        else
            return "0" + String.valueOf(c);
    }

@Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.preset_edit);
        save = (Button) findViewById(R.id.btnSave);
        TextView eventTxt = (TextView) findViewById(R.id.txtViewEvent);
        startTime = (Button) findViewById(R.id.btnStartTime);
        endTime = (Button) findViewById(R.id.btnEndTime);

        startTime.setOnClickListener(new View.OnClickListener() {
            public void onClick(View v) {
                showDialog(TIME_DIALOG_ID);
            }
        });

        endTime.setOnClickListener(new View.OnClickListener() {
            public void onClick(View v) {
                showDialog(TIME_DIALOG_ID2);
            }
        });
4

3 に答える 3

4

Calendarクラスインスタンスを使用:

Calendar calendar=Calendar.getInstance();
calendar.set(Calendar.HOUR, tPicker.getCurrentHour());
calendar.set(Calendar.MINUTE, tPicker.getCurrentMinute());
calendar.set(Calendar.SECOND, tPicker.getCurrentSecond());
//you can also set the day, month, year etc., default values are today's

そして電話する

calendar.getTimeInMillis()

ミリ秒単位の時間値 ( long) が返され、別の値と簡単に比較できます。

詳細については、Calendarクラスのドキュメントを参照してください。

于 2013-04-12T05:38:07.360 に答える
1

これを試すこともできます..私にとってはうまくいきます...最初にTimePickerDialogから時間を取り、それをStringに取得してから、次のコードを適用します..

SimpleDateFormat sdf = new SimpleDateFormat("hh:mm");
            java.util.Date d_min = null;
            java.util.Date d_max = null;
            try {
                d_min = sdf.parse(time_min);//time_min is the Minimum time in String
                d_max = sdf.parse(time_max);time_max is the Maximun time in String
                d_compare = d_max.compareTo(d_min);
            } catch (ParseException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
 if (d_compare < 0) {
                check = 3;
                showDialog(0);
            } 

このように現在の時間を比較できます..これがお役に立てば幸いです..これを見ることもできます...現在の時間

そして、この...リンク

于 2013-04-12T05:43:19.010 に答える
1

TimePicker から時間を取得して保存します。

Time selectedTime = new Time(sHour, sMinute, 0);

それを現在の時間または他の時間と比較します。

Date time = MyClassName.convertStringToTime(selectedTime.toString());

両方の日付値を関数に渡します。

public static int compareTime(Date date1, Date date2) {
        int result = date1.compareTo(date2);

        if (result > 0) //
        {
            return 1;
        } else if (result == 0) {
            return 0;
        }
        return -1;

    }

編集: public static class MyClassName{ public static Date convertStringToTime(String strTime) { System.out.println("変換する時間:"+strTime+"."); 日付 dateTobeReturned = null;

            DateFormat sdf = new SimpleDateFormat(DateUtility.TIME_FORMAT);

            try {
                dateTobeReturned = sdf.parse(strTime);
            } catch (ParseException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }

            System.out.println("Time: " + sdf.format(dateTobeReturned));


            return dateTobeReturned;
        }
    }

ご不明な点がございましたらお尋ねください。それが役に立てば幸い。

于 2013-04-12T05:29:26.393 に答える