2012-05-06 3 views
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;}} 

ответ

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().

+0

Спасибо, очень полезно! Есть ли у вас какие-либо другие предложения по очистке или уменьшению количества кода? – KyleM

+0

Я также пытался решить вашу проблему. В моем случае диалоговое окно datepicker вызывает ошибку, и открывается диалоговое окно timepicker, однако у вас есть ненужные suppresswarnings. Удалить их. – erdomester

+0

Попробуйте написать сформированный код. По крайней мере, используйте форматирование eclipse для форматирования вашего кода. Тогда другие люди могут легко понять ваш код. Если вы хотите научиться пытаться написать свой собственный код. При копировании вы получите только результат, а не часть обучения. – Shaiful

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; 
} 
} 
Смежные вопросы