show(getFragmentManager(),String)给出错误[重复]

问题描述 投票:0回答:1

我正在使用一个日期选择器,当我从中选择日期时,我想在名为Eprevd的Editext中设置它,为此我创建了一个名为PickerDialog.java的内部类(静态)

但没有得到正确的方法来做到这一点。并且在此声明中也会出错

    pickerDialog.show(getFragmentManager(), "DatePicker");

错误是 - 无法解析方法show(android.app.fragmentmanager,java.lang.string)

这是UpdateActivity.java的代码

public class UpdateActivity extends AppCompatActivity {

int year_x, month_x, day_x;
private static EditText Eprevd;

protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_update);
    Eprevd = (EditText)findViewById(R.id.Eupdateprevd);  
}
   public void setDateP(View view)
{
    PickerDialog pickerDialog = new PickerDialog();

   //but this line below is giving error..
    pickerDialog.show(getFragmentManager(), "DatePicker"); // this line
}

                       /////////////////////////////////////////

public static class PickerDialog extends DialogFragment
        implements DatePickerDialog.OnDateSetListener
{
    int year_x, month_x, day_x;
    @Override
            public Dialog onCreateDialog(Bundle savedInstanceState)
        {
            Calendar cal = Calendar.getInstance();
            year_x=cal.get(Calendar.YEAR);
            month_x=cal.get(Calendar.MONTH);
            day_x=cal.get(Calendar.DAY_OF_MONTH);
            DatePickerDialog dialog;
            dialog = new DatePickerDialog(getActivity(),this,year_x,month_x,day_x);
            return dialog;
        }

        public void onDateSet(DatePicker view, int year, int month, int dayOfMonth)
        {
            year_x = year;
            month_x = month + 1;
            day_x = dayOfMonth;
            Eprevd.setText(day_x + " / " + month_x + " / " + year_x);
        }
      }
}

现在,我应该怎么做才能解决这个错误..?提前致谢..!

android datepicker dialog fragment
1个回答
2
投票

我假设setDateP被一个按钮调用并设置在xml布局文件中。您使用的是AppCompatActivity,因此您应该使用getSupportFragmentManager()。您可以停止为其提供“DatePicker”标记以与调用一起使用。

© www.soinside.com 2019 - 2024. All rights reserved.