2016-04-17 2 views
1

Мой код в BaseAdapter идет следующимИспользование DatePicker в BaseAdapter для фрагмента

date.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 

      ((Fragment)UserRequests.this.context).showDialog(999);//Error 
     } 
    }); 

Чтобы показать окно выбора даты, нам нужно код, приведенный ниже

protected Dialog onCreateDialog(int id) { 
    // TODO Auto-generated method stub 
    if (id == 999) { 
     return new DatePickerDialog(context, myDateListener, year, month, day); 
    } 
    return null; 
} 

private DatePickerDialog.OnDateSetListener myDateListener = new DatePickerDialog.OnDateSetListener() { 
    @Override 
    public void onDateSet(DatePicker arg0, int arg1, int arg2, int arg3) { 
     // TODO Auto-generated method stub 
     // arg1 = year 
     // arg2 = month 
     // arg3 = day 
     showDate(arg1, arg2+1, arg3); 
    } 
}; 

private void showDate(int year, int month, int day) { 
    date.setText(new StringBuilder().append(day).append("/") 
      .append(month).append("/").append(year)); 
} 

У меня есть две проблемы с этим кодом. Во-первых, я хочу показать datepicker в фрагменте под названием UserRequests. Который я не могу. Я пробовал это, как показано ниже.

((Fragment)UserRequests.this.context).showDialog(999); 

Во-вторых, я получаю предупреждение о том, что метод onCreateDialog никогда не используется. Пожалуйста, объясните мне. Как это решить. Заранее спасибо.

ответ

0

Вам нужно будет расширить UserRequests от DialogFragment и переопределить onCreateDialog ниже.

@Override 
    public Dialog onCreateDialog(Bundle savedInstanceState) { 
    //do something 
    } 

Более подробная информация находится в documentation

+0

Класс с именем FeedListAdapter простирается BaseAdapter и UserRequest это класс, который расширяет фрагмент. Из класса BaseAdapter мне нужно получить DatePicker в фрагменте UserRequest. И еще один вопрос - мы можем использовать Bundle в классе, расширяя BaseAdapter. – Karrthik

+0

Вы можете создать другой класс (например, DatePickerFragment) внутри UserRequest, который расширит DialogFragment. Внутри showDialog вы можете создать экземпляр DatePickerFragment и использовать его. Пакет не передается из BaseAdapter. Но при необходимости вы можете создавать и обрабатывать. –

Смежные вопросы