如何将视图绑定到alertdialog并在android中使用此视图中的子视图?

发布于 2025-01-07 10:13:12 字数 4292 浏览 1 评论 0原文

我有一个这样的视图:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<ScrollView 
    android:layout_width="fill_parent"
    android:layout_height="fill_parent">
    <RelativeLayout 
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:orientation="vertical">
        <TextView
            android:id="@+id/tvDialogTitle"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:gravity="center"
            android:text="Information" 
            android:padding="6dip"
            android:textStyle="bold"/>
        <TextView
            android:id="@+id/tvDialogEmail"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Email: " 
            android:padding="6dip"
            android:textStyle="bold"
            android:layout_below="@id/tvDialogTitle"/>
        <EditText
            android:id="@+id/etDialogEmail"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:padding="6dip"
            android:layout_below="@id/tvDialogTitle"
            android:layout_toRightOf="@id/tvDialogEmail"/>
        <TextView
            android:id="@+id/tvDialogPassword"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Password: " 
            android:padding="6dip"
            android:textStyle="bold"
            android:layout_below="@id/etDialogEmail"/>
        <EditText
            android:id="@+id/etDialogPassword"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:padding="6dip"
            android:layout_below="@id/etDialogEmail"
            android:layout_toRightOf="@id/tvDialogPassword"/>
        <TextView 
            android:id="@+id/tvDialogNumberRe"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Re- number: " 
            android:padding="6dip"
            android:textStyle="bold"
            android:layout_below="@id/etDialogPassword"/>
        <EditText
            android:id="@+id/etDialogNumberRe"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:padding="6dip"
            android:layout_below="@id/etDialogPassword"
            android:layout_toRightOf="@id/tvDialogNumberRe"/>
        <TextView 
            android:id="@+id/tvDialogEmailRe"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Re- email: " 
            android:padding="6dip"
            android:textStyle="bold"
            android:layout_below="@id/etDialogNumberRe"/>
        <EditText
            android:id="@+id/etDialogEmailRe"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:padding="6dip"
            android:layout_below="@id/etDialogNumberRe"
            android:layout_toRightOf="@id/tvDialogEmailRe"/>
        <TextView 
            android:id="@+id/tvDialogVerifyCode"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Verify code: " 
            android:padding="6dip"
            android:textStyle="bold"
            android:layout_below="@id/etDialogEmailRe"/>
        <EditText
            android:id="@+id/etDialogVerifyCode"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:padding="6dip"
            android:layout_below="@id/etDialogEmailRe"
            android:layout_toRightOf="@id/tvDialogVerifyCode"/>
    </RelativeLayout>
</ScrollView>

现在我想将此视图绑定到 AlertDialog。我只知道我可以使用 .setView 方法。不过,我不知道如何在绑定的View中使用EditText、TextView等子项。例如,我想在单击 AlertDialog 中的“确定”按钮后获取某些 TextView 中的文本。

有人可以帮助我吗?提前致谢。

I have a View like this:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<ScrollView 
    android:layout_width="fill_parent"
    android:layout_height="fill_parent">
    <RelativeLayout 
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:orientation="vertical">
        <TextView
            android:id="@+id/tvDialogTitle"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:gravity="center"
            android:text="Information" 
            android:padding="6dip"
            android:textStyle="bold"/>
        <TextView
            android:id="@+id/tvDialogEmail"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Email: " 
            android:padding="6dip"
            android:textStyle="bold"
            android:layout_below="@id/tvDialogTitle"/>
        <EditText
            android:id="@+id/etDialogEmail"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:padding="6dip"
            android:layout_below="@id/tvDialogTitle"
            android:layout_toRightOf="@id/tvDialogEmail"/>
        <TextView
            android:id="@+id/tvDialogPassword"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Password: " 
            android:padding="6dip"
            android:textStyle="bold"
            android:layout_below="@id/etDialogEmail"/>
        <EditText
            android:id="@+id/etDialogPassword"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:padding="6dip"
            android:layout_below="@id/etDialogEmail"
            android:layout_toRightOf="@id/tvDialogPassword"/>
        <TextView 
            android:id="@+id/tvDialogNumberRe"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Re- number: " 
            android:padding="6dip"
            android:textStyle="bold"
            android:layout_below="@id/etDialogPassword"/>
        <EditText
            android:id="@+id/etDialogNumberRe"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:padding="6dip"
            android:layout_below="@id/etDialogPassword"
            android:layout_toRightOf="@id/tvDialogNumberRe"/>
        <TextView 
            android:id="@+id/tvDialogEmailRe"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Re- email: " 
            android:padding="6dip"
            android:textStyle="bold"
            android:layout_below="@id/etDialogNumberRe"/>
        <EditText
            android:id="@+id/etDialogEmailRe"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:padding="6dip"
            android:layout_below="@id/etDialogNumberRe"
            android:layout_toRightOf="@id/tvDialogEmailRe"/>
        <TextView 
            android:id="@+id/tvDialogVerifyCode"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Verify code: " 
            android:padding="6dip"
            android:textStyle="bold"
            android:layout_below="@id/etDialogEmailRe"/>
        <EditText
            android:id="@+id/etDialogVerifyCode"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:padding="6dip"
            android:layout_below="@id/etDialogEmailRe"
            android:layout_toRightOf="@id/tvDialogVerifyCode"/>
    </RelativeLayout>
</ScrollView>

Now I want to bind this view to a AlertDialog. I just know that I can use the .setView method. Nevertheless, I do not know how to use the children such as EditText, TextView in the binded View. For example, I want to get the text in some TextView after clicking OK button in the AlertDialog.

Could anybody help me please. Thanks in advance.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

最近可好 2025-01-14 10:13:12

您需要将布局膨胀到对话框的视图中,并从膨胀的视图中检索 TextViews/EditTexts:

LayoutInflater li = getLayoutInflater();// LayoutInflater.from(getBaseContext());
View view = li.inflate(R.layout.your_dialog_layout, null);

EditText email = (EditText) view.findViewById(R.id.etDialogEmail);
TextView title = (TextView) view.findViewById(R.id.tvDialogTitle);
//and your other stuff....

AlertDialog.Builder bldr = new AlertDialog.Builder(getBaseContext());
bldr.setView(view);
AlertDialog diag = bldr.create();

you need to inflate your layout into dialog's view and retrieve TextViews/EditTexts from the inflated view:

LayoutInflater li = getLayoutInflater();// LayoutInflater.from(getBaseContext());
View view = li.inflate(R.layout.your_dialog_layout, null);

EditText email = (EditText) view.findViewById(R.id.etDialogEmail);
TextView title = (TextView) view.findViewById(R.id.tvDialogTitle);
//and your other stuff....

AlertDialog.Builder bldr = new AlertDialog.Builder(getBaseContext());
bldr.setView(view);
AlertDialog diag = bldr.create();
同尘 2025-01-14 10:13:12

我假设您已将视图扩展为视图对象,如下所示:

LayoutInflater mInflater= mContext.getSystemService(mContext.Layout_Inflater_Service);

View view=mInflater.inflate(R.layout.dialog);
dialog.setViw(view);

您可以使用该视图的 id 来获取子视图:

TextView txt=(TextView)view.findViewById(R.id.tvDialogTitle);

I am assuming that you have inflated your view into view object, as below:

LayoutInflater mInflater= mContext.getSystemService(mContext.Layout_Inflater_Service);

View view=mInflater.inflate(R.layout.dialog);
dialog.setViw(view);

you can fetch children views by using ids of that view.:

TextView txt=(TextView)view.findViewById(R.id.tvDialogTitle);
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文