Мой код в 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 никогда не используется. Пожалуйста, объясните мне. Как это решить. Заранее спасибо.
Класс с именем FeedListAdapter простирается BaseAdapter и UserRequest это класс, который расширяет фрагмент. Из класса BaseAdapter мне нужно получить DatePicker в фрагменте UserRequest. И еще один вопрос - мы можем использовать Bundle в классе, расширяя BaseAdapter. – Karrthik
Вы можете создать другой класс (например, DatePickerFragment) внутри UserRequest, который расширит DialogFragment. Внутри showDialog вы можете создать экземпляр DatePickerFragment и использовать его. Пакет не передается из BaseAdapter. Но при необходимости вы можете создавать и обрабатывать. –