相关疑难解决方法(0)

DialogFragment - 在屏幕旋转后保留监听器

我有一个DialogFragment创建一个DatePickerDialog.我正在使用一个静态方法调用newInstance来设置初始值,以便使用默认的空构造函数.但是,我应该如何设置监听器?在屏幕旋转之后,当单击"完成"按钮时,监听器不会执行任何操作,因为它不存在.

public class DatePickerFragment extends DialogFragment {
    public static final String ARG_YEAR = "year";
    public static final String ARG_MONTH = "month";
    public static final String ARG_DAY = "day";

    private OnDateSetListener listener_;

    public static DatePickerFragment newInstance(OnDateSetListener listener, int year, int month, int day) {
        final DatePickerFragment date_picker = new DatePickerFragment();
        date_picker.setListener(listener);

        final Bundle arguments = new Bundle();
        arguments.putInt(ARG_YEAR, year);
        arguments.putInt(ARG_MONTH, month);
        arguments.putInt(ARG_DAY, day);
        date_picker.setArguments(arguments);

        return date_picker;
    }

    private void setListener(OnDateSetListener listener) {
        listener_ = listener;
    }

    @Override
    public Dialog …
Run Code Online (Sandbox Code Playgroud)

android android-lifecycle android-fragments

30
推荐指数
2
解决办法
1万
查看次数

片段,DialogFragment和屏幕旋转

我有一个Activity,用这个XML调用setContentView:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="horizontal"
    >
    <fragment android:name="org.vt.indiatab.GroupFragment"
        android:id="@+id/home_groups"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:layout_weight="1" />
            <..some other fragments ...>
</LinearLayout>
Run Code Online (Sandbox Code Playgroud)

GroupFragment扩展了Fragment,一切都很好.但是,我在GroupFragment中显示了一个DialogFragment.这显示正确,但是当屏幕旋转时,我得到一个强制关闭.

从DialogFragment.show(FragmentManager,String)以外的其他片段中显示DialogFragment的正确方法是什么?

android android-fragments

25
推荐指数
2
解决办法
3万
查看次数