java - 如何在fragment中实现dialogfragment?

标签 java android android-fragments dialogfragment

我有一个关于dialogfragment的问题 - 我通过教程创建了一个带有dialogfragment的类,但在教程中,dialogfragment是通过单击按钮显示的 - 我想通过单击我的MainActivity中的fragment选项卡来显示dialogfragment - 我不能弄清楚如何..我有 Fragment GetItem 方法,其中我的代码中有空的 case 4 - 这是 fragment ,我想通过单击它来打开dialogfragment。这是我的代码。感谢您的所有帮助和解答!抱歉,如果有不清楚的地方..

-问题已修复(即评论)-我创建了新的 DialogFragment - xml 文件和 java 类 - 来自guides.codepath.com/android/Using-DialogFragment#build-dialo‌​g 的代码,然后我将此代码添加到 MainActivity

 tabLayout.setOnTabSelectedListener(new TabLayout.ViewPagerOnTabSelectedListener(mViewPager) {
            @Override
            public void onTabSelected(TabLayout.Tab tab) {
                super.onTabSelected(tab);
                int position = tab.getPosition();
                if (position == 4) {
                    showAlertDialog();
                }
            }
        });
    }
    private void showAlertDialog() {
        FragmentManager fm = getSupportFragmentManager();
        EditNameDialogFragment alertDialog = EditNameDialogFragment.newInstance("Some title");
        alertDialog.show(fm, "fragment_alert");
    }

最佳答案

您可能想要检测单击了哪个选项卡并像其他任何选项卡一样显示对话框

您需要添加一个TabLayout.OnTabSelectedListener

设置

tabLayout.setupWithViewPager(mViewPager);
tabLayout.setOnTabSelectedListener(new TabLayout.ViewPagerOnTabSelectedListener(mViewPager) {
  @Override
  public void onTabSelected(TabLayout.Tab tab) {
      super.onTabSelected(tab);
      int position = tab.getPosition();
      if (position == 4) {
          // Create MediaFragment here
      } 
   }
});

关于java - 如何在fragment中实现dialogfragment?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46267304/

相关文章:

java - recyclerview 中的列表未排序

Android:如何以编程方式禁用屏幕截图并显示其 snackbar

java - 从 ActionPerformed 调用方法并在主线程上运行它

java - 如何避免 if 语句并调用多个构造函数

java - 如何比较 Java 中的字符串?

android - 为工具栏使用自定义字体时崩溃

java - 如何使用扫描仪类将值获取到字符数组中?

android - 无法将 Kotlin 对象导入到 xml 中

android.database.sqlite.SQLiteConstraintException

android - SearchView.onQueryTextListener 在 Fragment (Kotlin) 中不起作用