Android 无法从时间选择器中检索时间参数

Android 无法从时间选择器中检索时间参数,android,Android,我有一个日期选择器和时间选择器。我能够成功检索所有日期参数值。然而,当我尝试使用TimePicker时,我得到了一个错误,行显示错误“AddCastToTimePicker”。我所做的有什么不对吗 datepicker = (DatePicker) findViewById(R.id.pickerdate); timepicker = (TimePicker) findViewById(R.id.pickertime); DateStr = datepicker.getDayOfMonth(

我有一个日期选择器和时间选择器。我能够成功检索所有日期参数值。然而,当我尝试使用TimePicker时,我得到了一个错误,行显示错误“AddCastToTimePicker”。我所做的有什么不对吗

datepicker = (DatePicker) findViewById(R.id.pickerdate); 
timepicker = (TimePicker) findViewById(R.id.pickertime);

DateStr = datepicker.getDayOfMonth() + "/"
                + (datepicker.getMonth() + 1) + "/" + datepicker.getYear();

TimeStr = timepicker.getHourOfDay() + " : " + timepicker.getminute();

对于时间选择器小部件,请使用以下功能:-

TimeStr = timepicker.getCurrentHour() + " : " + timepicker.getCurrentMinute();

使用我的时间选择器对话框

单击按钮,时间选择器对话框打开。选择时间,然后将该时间设置为按钮上的文本。 Xml仅包含id为:-dueTime的按钮

您可以根据需要对其进行修改:-

package com.example.timepickerdialog;

import java.util.Calendar;

import android.app.Activity;
import android.app.Dialog;
import android.app.TimePickerDialog;
import android.os.Bundle;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.TimePicker;

public class MainActivity extends Activity {
    private int pHour;
    private int pMinute;
    static final int TIME_DIALOG_ID = 0;
    Button dueTime;
    private String AmPm;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        dueTime = (Button)findViewById(R.id.dueTime);
        dueTime.setOnClickListener(new OnClickListener() {
            @Override
            public void onClick(View v) {
                showDialog(TIME_DIALOG_ID);
            }
        });

    }

    private TimePickerDialog.OnTimeSetListener mTimeSetListener =
            new TimePickerDialog.OnTimeSetListener() {
        @Override    
        public void onTimeSet(TimePicker view, int hourOfDay, int minute) {
            pHour = hourOfDay;
            if(pHour>11){
                //pHour=pHour-12;
                AmPm="PM";
            }
            else
                AmPm="AM";
            pMinute = minute;

            dueTime.setText(
                    new StringBuilder()
                    .append(pad(pHour)).append(":")
                    .append(pad(pMinute)).append(" ")
                    .append(AmPm));
        }

    };
    /** Add padding to numbers less than ten */
    private static String pad(int c) {
        if (c >= 10)
            return String.valueOf(c);
        else
            return "0" + String.valueOf(c);
    }

    @Override
    protected Dialog onCreateDialog(int id) {
        switch (id) {

        case TIME_DIALOG_ID:
            try {
                /** Get the current time */
                final Calendar cal = Calendar.getInstance();
                if(dueTime.getText().length()!=0){
                    String time[]=dueTime.getText().toString().split(":");
                    String time2[]=time[1].split(" ");
                    if(time2[1].trim().equalsIgnoreCase("AM")){
                        pHour = Integer.parseInt(time[0]);
                    }else{
                        pHour = Integer.parseInt(time[0])+12;
                    }
                    pMinute = Integer.parseInt(time2[0]);
                }else{
                    pHour = cal.get(Calendar.HOUR_OF_DAY);
                    pMinute = cal.get(Calendar.MINUTE);
                }
                return (new TimePickerDialog(this, mTimeSetListener, pHour, pMinute, true));
            } catch (IllegalArgumentException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
        }
        return null;
    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.main, menu);
        return true;
    }

}

您是否已将timepicker变量声明为timepicker?是。。声明为:-timepicker=(timepicker)findviewbyd(R.id.pickertime);TimePicker TimePicker=(TimePicker)findviewbyd(R.id.pickertime);像这样使用它。并确保您选择了正确的id。已完成。我已经向全球宣布了这一点。