1

抱歉,如果这看起来很简单,但我查看了有关对话框的 N+1 视频,它显示了在代码中而不是通过使用布局来创建对话框。

这是我所做的:

ChangePasswordView.axml:

<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:local="http://schemas.android.com/apk/res-auto"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:padding="16dp">
    <LinearLayout
        android:orientation="vertical"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent">
        <EditText
            android:id="@+id/oldpassword"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:hint="@string/YourOldPassword"
            android:inputType="textPassword"
            local:MvxBind="Text OldPassword" />
        <EditText
            android:id="@+id/newpassword"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:inputType="textPassword"
            android:hint="@string/YourNewPassword"
            local:MvxBind="Text NewPassword" />
        <Button
            android:text="@string/ChangePassword"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center"
            local:MvxBind="Click ChangePasswordCommand"
            android:paddingRight="42dp"
            android:paddingLeft="42dp" />
    </LinearLayout>
</FrameLayout>

ChangePasswordView.cs:

[Activity]
    public class ChangePasswordView : MvxDialogActivity
    {
        protected override void OnCreate(Bundle bundle)
        {
            base.OnCreate(bundle);
            DroidResources.Initialise(typeof(Resource.Layout));
            this.SetContentView(Resource.Layout.ChangePassword);
        }
        }

从视图模型调用对话框的显示:

void ChangePassword()
{
  this.ShowViewModel<ChangePasswordViewModel>();
}

我也有 Setup.cs:

public class Setup : MvxAndroidDialogSetup
{
 ...
}

运行导致错误抱怨:

Your content must have a ListView whose id attribute is 'android.R.id.list
4

1 回答 1

0

我认为这里有一些关于“对话”是什么的混淆

对话框 1 - https://github.com/migueldeicaza/MonoTouch.Dialoghttps://github.com/kevinmcmahon/MonoDroid.Dialog

http://slodge.blogspot.co.uk/2013/05/n23-dialogs-n1-days-of-mvvmcross.html意义上的对话框是基于 MonoTouch.Dialog 或 MonoDroid.Dialog 的“数据表单”。

这些是在代码中定义的——因为这就是 MonoTouch.Dialog 和 MonoDroid.Dialog 的意义所在。对于 Droid,您可以覆盖显示的各个元素 - 每个元素都是从资源加载的 - 但您不能将整个“活动”加载为资源。

对话框 2 - http://developer.android.com/guide/topics/ui/dialogs.html

如果您不是在寻找 MonoTouch.Dialog 样式的页面,而是在寻找 Android 原生的弹出对话框,那么 MvvmCross 中并没有太多关于这些的内容。在https://github.com/slodge/MvvmCross-Tutorials/blob/master/Fragments/FragmentSample.UI.Droid/Views/HomeView.cs中有一个基于片段资源的对话框的示例,以及一些关于如何在MvvmCross 对话框中显示它们

于 2013-09-17T17:43:22.293 回答