抓取以XML格式定义的自定义视图子项并放入Dialog

时间:2015-05-22 11:10:00

标签: android android-layout

目前,我正在处理自定义视图,该视图必须根据所使用的位置定义特定的对话框内容:

main.xml

<com.example.MyView>

    <TextView android:text="Hello from Dialog"/>

</com.example.MyView>

我的MyView课程夸大了不同的布局:

public class MyView extends RelativeLayout {

    public EntriesList(Context context) {
        super(context);

        inflate(context, R.layout.my_view, this);
    }

    public void openDialog() {
        AlertDialog.Builder builder = new AlertDialog.Builder(getContext());
        // builder.setView();
        // Set all children from `main.xml` - in this case `TextView`

        builder.create().show();
    }

}

my_view.xml包含一个打开对话框的按钮:

<RelativeLayout>

    <Button android:onClick="openDialog" />

</RelativeLayout>

如何阻止呈现TextView,抓住它并推入Dialog视图?

1 个答案:

答案 0 :(得分:0)

  

如何防止渲染TextView

将其展示次数设置为GONE

  

抓住它并按下对话框视图

为其分配id并使用findViewById来检索视图。分配,在removeView()上拨打MyView,然后通过setView()将其分配给对话。重要的是您删除了视图,因为同一个实例只能有一个父级。

作为替代方案,您可以将要设置为对话框的布局名称作为MyView的标记提供,在按下按钮时检索它,解析其ID,对其进行充气并调用{{1}提供膨胀的视图作为参数