在Xamarin中显示模态窗口

6
我是Xamarin的新手。我正在使用Xamarin创建一个简单的应用程序。我的布局中有一个表格视图。表格视图的每一行都显示一个模态窗口。例如,第一行用于获取用户的全名。我想要显示如右侧所示的模态窗口(参见下图)。 Question 我已经创建了相应的布局,如下所示:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:background="#ffffff"
    android:minWidth="25px"
    android:minHeight="25px">
    <EditText
        android:inputType="textPersonName"
        android:layout_width="200dp"
        android:layout_height="55px"
        android:id="@+id/txtFirstName"
        android:ellipsize="none"
        android:gravity="fill_horizontal"
        android:hint="First Name"
        android:height="55dp"
        android:layout_marginTop="100dp"
        android:layout_gravity="center_horizontal"
        android:textColor="#000000" />
    <EditText
        android:inputType="textPersonName"
        android:layout_width="200dp"
        android:layout_height="55px"
        android:id="@+id/txtLastName"
        android:ellipsize="none"
        android:gravity="fill_horizontal"
        android:hint="Last Name"
        android:height="55dp"
        android:layout_marginTop="25dp"
        android:layout_gravity="center_horizontal"
        android:textColor="#000000" />
    <RelativeLayout
        android:orientation="vertical"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:background="#ffffff"
        android:minWidth="25px"
        android:minHeight="25px"
        android:layout_marginTop="25dp">
        <Button
            android:text="Save"
            android:layout_width="100dp"
            android:layout_height="55px"
            android:id="@+id/btnSave"
            android:gravity="center"
            android:layout_gravity="center_horizontal"
            android:layout_marginTop="0dp"
            android:textColor="#000"
            android:layout_marginLeft="165dp" />
    </RelativeLayout>
</LinearLayout>

我编写的代码用于显示弹出窗口

tblrName.Click += delegate
{
    //Want to display the modal window here.
};

我试图使用setContentView()来设置布局,但它会打开一个新窗口,而我想在同一个屏幕上显示模态窗口。是否有人可以帮助我实现这个功能?
1个回答

16

使用AlertDialog

在您的单击事件中,尝试这样做:

var alert = new AlertDialog.Builder(this);
alert.SetView(LayoutInflater.Inflate(Resource.Layout.Modal, null));
alert.Create().Show();

要获取AlertDialog中的值,您可以在对话框中保留对EditText的引用。然后,在“保存”按钮单击事件中,只需调用EditText.Text即可获取该值。


感谢Aaron的快速回复。让我试一下,我会尽快更新您。 - Anand
还有一个疑问,我该如何将字符串设置为EditText名字的文本?我尝试将字符串类型的值设置为txtFirstName.SetText(firstName),但它没有起作用。 - Anand
txtFirstName 是我在警告对话框内使用的作为布局的 EditText。 - Anand
@Anand 你的意思是如何从模态窗口中获取值? - Aaron He
@Anand 我已经更新了答案。如果你有任何问题,请告诉我。 - Aaron He

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接