как привязать представление к alerttdialog и использовать детей в этом представлении в Android? - PullRequest
0 голосов
/ 20 февраля 2012

У меня есть такой вид:

<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 в связанном представлении. Например, я хочу получить текст в некотором TextView после нажатия кнопки OK в AlertDialog.

Может кто-нибудь помочь мне, пожалуйста. Заранее спасибо.

Ответы [ 2 ]

1 голос
/ 20 февраля 2012

Я предполагаю, что вы увеличили свой взгляд на объект просмотра, как показано ниже:

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

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

вы можете получить дочерние представления, используя идентификаторы этого представления .:

TextView txt=(TextView)view.findViewById(R.id.tvDialogTitle);
1 голос
/ 20 февраля 2012

вам нужно накачать свой макет в диалоговое окно и получить 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();
...