如何在不同情况下在Activity和Fragment中显示相同的Dialog?

时间:2015-05-27 04:49:01

标签: dialog android-dialogfragment android-dialog

我正在做一个示例Project我正在使用带有Fragments的导航抽屉。当我点击 item1 行时,它会打开Dialog Fragment1 。在对话框中 Fragment1 < / strong>我有一个按钮。

我的要求是,当点击片段中的按钮时,我想打开从导航行 item1 触发的相同对话 ... 我正在使用以下代码在Activity中创建Dialog

    public void showRegisterDialog() {

    final Dialog dialog = new Dialog(MainActivity.this);
    dialog.requestWindowFeature(Window.FEATURE_NO_TITLE);
    dialog.setContentView(R.layout.custom_dialog_register);
    dialog.show();
}

并按照代码在Fragment中打开Dialog

  private void LoadFragmentView(int position) {
    // update the main content by replacing fragments
    Fragment fragment = null;
    switch (position) {
        case 1:
            fragment = new Fragment2();
            showRegisterDialog();
            break;
        case 2:
            fragment = new Fragment3();

            break;
        case 3:
            fragment = new Fragment4();
            break;
        case 4:
            fragment = new Fragment5();
            break;


        default:
            break;
    }
I need some guidelines,thank you..

1 个答案:

答案 0 :(得分:0)

我做了一些研究并得到了解决方案。 您需要在片段中使用回调方法。 为此,您需要使用以下代码:

your_button_on_fragment.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
           ((YourActivityName)getActivity()).showRegisterDialog();
        }
    });