我必须用片段替换id,这是我的来源:

 public void showEmojiDialog() {
    final Dialog dialog = new Dialog(MainActivity.this);
    dialog.requestWindowFeature(Window.FEATURE_NO_TITLE);
    dialog.setCancelable(false);
    dialog.setContentView(R.layout.activity_check);
    mEditEmojicon1 = (EmojiconEditText) dialog.findViewById(R.id.editEmojicon1);
    getSupportFragmentManager()
            .beginTransaction()
            .replace(R.id.editEmojicon1, EmojiconsFragment.newInstance(false))
            .commit();
    Button dialogButton = (Button) dialog.findViewById(R.id.send_btn);
    dialogButton.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            dialog.dismiss();
        }
    });

    dialog.show();

}

面临的问题:
getSupportFragmentManager()
        .beginTransaction()
        .replace(R.id.editEmojicon1, EmojiconsFragment.newInstance(false))
        .commit();

原因:java.lang.illegalargumentexception:找不到用于片段emojiconscfragment{1f7f3e0d}的id 0x7f0d007c(com.sample.testapplication:id/editemojicon1)的视图
将idR.id.editEmojicon1替换为EmojiconsFragment我很困惑,但是由于我在对话框中,它没有得到它的视图。
这是我想在对话框中显示的内容。

最佳答案

使用getSupportFragmentManager()而不是getChildFragmentManager()

关于android - 如何在对话框中用cointainerviewId替换 fragment ,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/46574989/

10-09 01:30