0

我正在开发多次 Android 警报应用程序,但第一步我遇到的问题是它在 AM 和 PM 中没有区别,我不知道我的代码有什么问题。下面是我的 MainActivity 类代码,我在其中遇到问题,我从时间选择器获取警报时间。

Button start;
TimePicker timeP;
TextView tv;
EditText et;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    start = (Button) findViewById(R.id.button1);
    timeP = (TimePicker) findViewById(R.id.timePicker1);
    et = (EditText) findViewById(R.id.editText1);
    tv = (TextView) findViewById(R.id.tex);

    // tv.setText(""+System.currentTimeMillis()+20000);
    start.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View view) {
            // TODO Auto-generated method stub
            String messg = et.getText().toString();

            Calendar time = Calendar.getInstance();

            time.set(Calendar.HOUR, timeP.getCurrentHour());
            time.set(Calendar.MINUTE, timeP.getCurrentMinute());
            //time.setTimeInMillis(System.currentTimeMillis());
            time.set(Calendar.SECOND, 0);

            time.set(Calendar.AM_PM, time.PM);


            Intent intent = new Intent(MainActivity.this, Second.class);

            intent.putExtra("msg", messg);

            PendingIntent pi = PendingIntent.getActivity(MainActivity.this,
                    0, intent, PendingIntent.FLAG_CANCEL_CURRENT);
            AlarmManager am = (AlarmManager) getSystemService(Context.ALARM_SERVICE);
            am.set(AlarmManager.RTC_WAKEUP,time.getTimeInMillis(), pi);
            );}

谢谢 。

4

1 回答 1

0

确实,不是使用 12 小时制,而是使用 24 小时制来实现。获取您的 TimePicker 时间并解析为 24 小时制检查以下代码:

_Strtime="11:30 AM";

SimpleDateFormat mDateFormat1 = new SimpleDateFormat("HH:mm");

mCalendar.setTime(mDateFormat1.parse(_Strtime));


PendingIntent pi = PendingIntent.getActivity(MainActivity.this,0, intent, PendingIntent.FLAG_CANCEL_CURRENT);

AlarmManager am = (AlarmManager) getSystemService(Context.ALARM_SERVICE);

am.set(AlarmManager.RTC_WAKEUP,mCalendar.getTimeInMillis(), pi);
于 2013-05-21T05:12:50.133 回答