在BaseAdapter中使用datepicker作为片段

时间:2016-04-17 03:14:52

标签: android android-fragments datepicker baseadapter

我在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方法。请解释一下。怎么解决这个问题。提前谢谢。

1 个答案:

答案 0 :(得分:0)

您需要从DialogFragment扩展UserRequests并以下面的方式覆盖onCreateDialog。

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

更多信息在documentation