0

我是新人,我很抱歉,我已经搜索过,但在以前的问题中找不到答案。我有一个日期选择器和一个时间选择器,但是当我运行它时,时间选择器对话框没有显示。任何的想法?我搜索了几个小时的答案,这是我拥有的代码:

    public class BuildingFireActivity extends Activity {

private Button buildingfirePickDate;
private Button buildingfiredispatchPickTime;

private TextView buildingfireDateDisplay;
private TextView buildingfiredispatchTimeDisplay;

private int buildingfireYear;
private int buildingfireMonth;
private int buildingfireDay;
private int buildingfiredispatchHour;
private int buildingfiredispatchMinute;

static final int DATE_DIALOG_ID = 0;
static final int TIME_DIALOG_ID = 1;


public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.buildingfirelayout);

    buildingfirePickDate = (Button) findViewById(R.id.pickDate);
    buildingfiredispatchPickTime = (Button) findViewById(R.id.dispatchTime);

    buildingfireDateDisplay = (TextView) findViewById(R.id.dateDisplay);
    buildingfiredispatchTimeDisplay = (TextView) findViewById(R.id.dispatchDisplay);

    buildingfirePickDate.setOnClickListener(new View.OnClickListener() {


@SuppressWarnings("deprecation")
public void onClick(View v) {
    showDialog(DATE_DIALOG_ID);}});
    final Calendar c = Calendar.getInstance();
    buildingfireYear = c.get(Calendar.YEAR);
    buildingfireMonth = c.get(Calendar.MONTH);
    buildingfireDay = c.get(Calendar.DAY_OF_MONTH);
    updateDisplay();
    buildingfiredispatchPickTime.setOnClickListener(new View.OnClickListener() {
@SuppressWarnings("deprecation")
public void onClick(View v) {
    showDialog(TIME_DIALOG_ID);}});
    final Calendar dispatch = Calendar.getInstance();
    buildingfiredispatchHour = dispatch.get(Calendar.HOUR_OF_DAY);
    buildingfiredispatchMinute = dispatch.get(Calendar.MINUTE);
    updateDisplay1();}
private static String pad(int dispatch) {
    if (dispatch >= 10)
    return String.valueOf(dispatch);
    else
    return "0" + String.valueOf(dispatch);}


private void updateDisplay() {
    buildingfireDateDisplay.setText(
    new StringBuilder()
    .append(buildingfireMonth + 1).append("-")
    .append(buildingfireDay).append("-")
    .append(buildingfireYear).append(" "));}
private void updateDisplay1() {
    buildingfiredispatchTimeDisplay.setText(
    new StringBuilder()
    .append(pad(buildingfiredispatchHour)).append(":")
    .append(pad(buildingfiredispatchMinute)));}

private DatePickerDialog.OnDateSetListener buildingfireDateSetListener =
    new DatePickerDialog.OnDateSetListener() {
    public void onDateSet(DatePicker view, int year, int monthOfYear, int dayOfMonth) {
            buildingfireYear = year;
            buildingfireMonth = monthOfYear;
            buildingfireDay = dayOfMonth;
            updateDisplay();}};
private TimePickerDialog.OnTimeSetListener buildingfiredispatchTimeSetListener =
    new TimePickerDialog.OnTimeSetListener() {
    public void onTimeSet(TimePicker view, int hourOfDay, int minute) {
            buildingfiredispatchHour = hourOfDay;
            buildingfiredispatchMinute = minute;
            updateDisplay1();}}; 



protected Dialog onCreateDialog(int id) {
    switch (id) {
    case TIME_DIALOG_ID:
    return new TimePickerDialog(this,
            buildingfiredispatchTimeSetListener, 
            buildingfiredispatchHour, 
            buildingfiredispatchMinute, false);}
            return null;}

@Override
protected Dialog onCreateDialog1(int id) {
    switch (id) {
    case DATE_DIALOG_ID:
    return new DatePickerDialog(this,
            buildingfireDateSetListener,
            buildingfireYear, 
            buildingfireMonth, 
            buildingfireDay);}
            return null;}}
4

2 回答 2

0
protected Dialog onCreateDialog(int id) {
    switch (id) {
    case TIME_DIALOG_ID:
    return new TimePickerDialog(this,
        buildingfiredispatchTimeSetListener, 
        buildingfiredispatchHour, 
        buildingfiredispatchMinute, false);
    case DATE_DIALOG_ID:
    return new DatePickerDialog(this,
        buildingfireDateSetListener,
        buildingfireYear, 
        buildingfireMonth, 
        buildingfireDay);
    }
    return null;
}

尝试使用此代码并删除onCreateDialog1().

于 2012-05-06T19:54:41.863 回答
0

嗨,你可以试试这个代码吗?我希望它有助于查看日期选择器对话框

从对话框中选择日期并将其显示在 TextView 中。

public class DatePickerDemoActivity extends Activity {
/** Called when the activity is first created. */

   private TextView mDateDisplay;
    private Button mPickDate;
    private int mYear;
    private int mMonth;
    private int mDay;

    static final int DATE_DIALOG_ID = 0;

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);

    // capture our View elements
    mDateDisplay = (TextView) findViewById(R.id.dateDisplay);
    mPickDate = (Button) findViewById(R.id.pickDate);

    // add a click listener to the button
    mPickDate.setOnClickListener(new View.OnClickListener() {
        public void onClick(View v) {
            showDialog(DATE_DIALOG_ID);
        }
    });

    // get the current date
    final Calendar c = Calendar.getInstance();
    mYear = c.get(Calendar.YEAR);
    mMonth = c.get(Calendar.MONTH);
    mDay = c.get(Calendar.DAY_OF_MONTH);

    // display the current date (this method is below)
    updateDisplay();
}

// updates the date in the TextView
private void updateDisplay() {
    mDateDisplay.setText(getString(R.string.strSelectedDate,
        new StringBuilder()
                // Month is 0 based so add 1
                .append(mMonth + 1).append("-")
                .append(mDay).append("-")
                .append(mYear).append(" ")));
}

// the callback received when the user "sets" the date in the dialog
private DatePickerDialog.OnDateSetListener mDateSetListener =
        new DatePickerDialog.OnDateSetListener() {

            public void onDateSet(DatePicker view, int year,
                                  int monthOfYear, int dayOfMonth) {
                mYear = year;
                mMonth = monthOfYear;
                mDay = dayOfMonth;
                updateDisplay();
            }
        };

@Override
protected Dialog onCreateDialog(int id) {
    switch (id) {
    case DATE_DIALOG_ID:
        return new DatePickerDialog(this, mDateSetListener, mYear, mMonth,
                mDay);
    }
    return null;
}
}
于 2013-04-13T05:45:19.780 回答