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

时间:2012-02-20 10:19:19

标签: android layout view alertdialog

我有这样的观点:

<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方法。不过,我不知道如何在绑定视图中使用EditText,TextView等子项。例如,我想在AlertDialog中单击OK按钮后在某些TextView中获取文本。

是的,请有人帮助我。提前致谢。

2 个答案:

答案 0 :(得分:1)

您需要将布局扩展到对话框的视图中,并从膨胀的视图中检索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();

答案 1 :(得分:1)

我假设您已将视图夸大到视图对象中,如下所示:

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);