如何从片段打开对话框并实现监听器模式?

时间:2015-06-13 12:26:06

标签: android android-fragments

我有一个打开dialogfragment的片段。我使用监听模式。我的原始代码直接使用了一个活动,打开对话框工作正常。

在对话片段中我做:

User-Agent

但是因为现在我从一个活动转移到碎片,所以上面的工作没有用。

我应该将片段作为参数传递吗?

1 个答案:

答案 0 :(得分:0)

您可以在自定义DialogFragment中创建一个观察者模式,然后在您将创建它的活动或片段中,您必须为其提供一个Observer实现的实例:

public class CustomTwoFieldsDialog extends DialogFragment {

private TextView first_button_text_view, second_button_text_view;

public interface CustomTwoFieldsDialogListener {
    public void onBtnClick(int btnPos, Dialog dialog);

}

private CustomTwoFieldsDialogListener listener;

public void setListener(CustomTwoFieldsDialogListener listener) {
    this.listener = listener;
}

private void setButtonsClickingListeners() {
    first_button_text_view.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View v) {
            listener.onBtnClick(0, getDialog());
        }
    });

    second_button_text_view.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View v) {
            listener.onBtnClick(1, getDialog());
        }
    });
}}

然后进入将使用自定义Fragment的{​​{1}}或Activity

DialogFragment