如何在对话框中显示片段?

时间:2014-01-16 23:25:30

标签: android android-fragments

我创建了一个包含一些文本和图像的片段:

public class ContentFragment extends Fragment {

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {  

        View view = inflater.inflate(R.layout.fragment_content, container, false);

        return view;  

    }

}

有没有办法让它在对话框中显示?

例如:

AlertDialog.Builder builder = new AlertDialog.Builder(this);

builder.setTitle("Showing a fragment in a dialog");

// Load fragment as dialog content somehow

AlertDialog alert = builder.create();

alert.show();

2 个答案:

答案 0 :(得分:1)

每个对话框都有setView方法,您可以通过编程方式创建或充气,请参阅example
您还应该考虑使用DialogFragment

答案 1 :(得分:1)

AlertDialog不应该托管片段。

您可以使用的解决方法是替换对话框UI,可以通过以下方式实现:

dialog.setContentView(R.layout.fragment_content)

这只会更改对话框视图,如果要将事件或数据绑定到片段内的控件,则需要在setContentView之后执行此操作