我在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));
}
我对此代码有两个问题。首先,我想在名为UserRequests的片段中显示一个日期选择器。我无法做到。我已经尝试过如下。
((Fragment)UserRequests.this.context).showDialog(999);
第二个是我收到警告,从不使用onCreateDialog方法。请解释一下。怎么解决这个问题。提前谢谢。
答案 0 :(得分:0)
您需要从DialogFragment扩展UserRequests并以下面的方式覆盖onCreateDialog。
@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {
//do something
}
更多信息在documentation
中