【问题标题】:Access FragmentActivity within Class extends by DialogFragment类中的访问 FragmentActivity 由 DialogFragment 扩展
【发布时间】:2013-04-22 09:42:01
【问题描述】:
我有一个由DialogFragment扩展的课程。我想在这个DialogFragment 中调用一个由FragmentActivity扩展的类中的方法。
在我的FragmentActivity 中,我如下调用DialogFragment。
DialogFragment dialogFragment = new MyDialogFragmentClass();
dialogFragment.show(getSupportFragmentManager(), "datePicker");
我正在使用这个DialogFragment 来显示DatePicker。当用户选择日期并单击 set 按钮时,我想在我的FragmentActivity 中调用一个方法。
我该怎么做?
【问题讨论】:
标签:
android-fragmentactivity
android-dialogfragment
android-datepicker
【解决方案1】:
public class MainActivity extends FragmentActivity {
EditText mEdit;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
public void selectDate(View view) {
DialogFragment newFragment = new SelectDateFragment();
newFragment.show(getSupportFragmentManager(), "DatePicker");
}
public void populateSetDate(int year, int month, int day) {
mEdit = (EditText)findViewById(R.id.editText1);
mEdit.setText(month+"/"+day+"/"+year);
}
public class SelectDateFragment extends DialogFragment implements DatePickerDialog.OnDateSetListener {
@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {
final Calendar calendar = Calendar.getInstance();
int yy = calendar.get(Calendar.YEAR);
int mm = calendar.get(Calendar.MONTH);
int dd = calendar.get(Calendar.DAY_OF_MONTH);
return new DatePickerDialog(getActivity(), this, yy, mm, dd);
}
public void onDateSet(DatePicker view, int yy, int mm, int dd) {
populateSetDate(yy, mm+1, dd);
}
}
}
// 导入必要的包...