我试图使用日期选择器窗口小部件在这里的文档示例:docs
然而,当我打电话newFragment.show(getSupportFragmentManager() “日期选择器”);
应用程序崩溃和堆栈跟踪显示以下内容:
FATAL EXCEPTION: main Process: com.wgu.andrey.clp1, PID: 8125
java.lang.IllegalStateException: Activity has been destroyed
at android.support.v4.app.FragmentManagerImpl.enqueueAction(FragmentManager.java:1864)
at android.support.v4.app.BackStackRecord.commitInternal(BackStackRecord.java:650)
at android.support.v4.app.BackStackRecord.commit(BackStackRecord.java:609)
at android.support.v4.app.DialogFragment.show(DialogFragment.java:143)
at com.wgu.andrey.clp1.Terms.showDatePickerDialog(Terms.java:67)
date picker fragment.Java
public class DatePickerFragment extends DialogFragment
implements DatePickerDialog.OnDateSetListener {
@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {
// Use the current date as the default date in the picker
final Calendar c = Calendar.getInstance();
int year = c.get(Calendar.YEAR);
int month = c.get(Calendar.MONTH);
int day = c.get(Calendar.DAY_OF_MONTH);
// Create a new instance of DatePickerDialog and return it
return new DatePickerDialog(getActivity(), this, year, month, day);
}
public void onDateSet(DatePicker view, int year, int month, int day) {
// Do something with the date chosen by the user
}
}
terms.Java
public void showDatePickerDialog(View v) {
DialogFragment newFragment = new DatePickerFragment();
newFragment.show(getSupportFragmentManager(), "datePicker");
}
在同一行什么@Mike说,条款类不能是一个子类的活动。移动方法自身的实用工具类,然后调用由要么通过上下文或传递片段管理器的方法。
事情是这样的:
public void showDatePickerDialog(View v, AppCompatActivity context) {
DialogFragment newFragment = new DialogFragment();
newFragment.show(context.getSupportFragmentManager(), "TAG");
}
另外,使用FragmentManager
public void showDatePickerDialog(View v, FragmentManager fm) {
DialogFragment newFragment = new DialogFragment();
newFragment.show(fm, "datePicker");
}