Mvvmcross:启动包含ListView的android对话框
首先,我要对Stuart Lodge这个令人敬畏的框架表示极大的敬意。与Xamarin的Visual Studio集成一起,这是我接触过的最高效的跨平台框架之一 我想要实现的是在单击按钮时启动一个包含可选ListView的对话框。当用户关闭此对话框时,我需要访问所选项目。在遵循MVVM范式的同时,是否有推荐的方法使用Mvvmcross对话框插件来实现这一点 我正在使用以下活动创建一个对话框Mvvmcross:启动包含ListView的android对话框,android,mvvm,dialog,xamarin,mvvmcross,Android,Mvvm,Dialog,Xamarin,Mvvmcross,首先,我要对Stuart Lodge这个令人敬畏的框架表示极大的敬意。与Xamarin的Visual Studio集成一起,这是我接触过的最高效的跨平台框架之一 我想要实现的是在单击按钮时启动一个包含可选ListView的对话框。当用户关闭此对话框时,我需要访问所选项目。在遵循MVVM范式的同时,是否有推荐的方法使用Mvvmcross对话框插件来实现这一点 我正在使用以下活动创建一个对话框 [Activity(Theme = "@android:style/Theme.Holo.Dialog")
[Activity(Theme = "@android:style/Theme.Holo.Dialog")]
public class SearchResultDialogView : MvxActivity
{
protected override void OnCreate(Bundle bundle)
{
base.OnCreate(bundle);
SetContentView(Resource.Layout.SearchResultView);
}
}
从另一个视图模型导航到SearchResultDialogViewModel
,将此视图显示为模态视图。看来我正朝着正确的方向前进。但是,对话框缺少OK和Cancel按钮,我还想去掉默认的标题。我想我需要一个AlertDialog,但到目前为止,我还没有成功地使用以下代码启动一个:
[Activity(Theme = "@android:style/Theme.NoTitleBar")]
public class SearchResultDialogView : MvxActivity
{
protected override Dialog OnCreateDialog(int id, Bundle args)
{
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.SetTitle("some title");
return builder.Create();
}
}
如果这个问题含糊不清,我道歉。我是Android UI开发的新手
TIA。您可以使用构建器来完成 代码是:
@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {
AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
builder.setTitle(R.string.pick_color);
.setItems(R.array.colors_array, new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
// The 'which' argument contains the index position
// of the selected item
}
});
return builder.create();
}
您可以通过将
which
值返回给调用者来获取元素。这里的dialog这个词有几种不同的用法
- Android对话框是“弹出式显示”,包含在
- MvvmCross对话框插件是一个基于代码的表单生成器,由现有的MonoDroid.Dialog和MonoTouch.Dialog工具派生而来-请参阅
- Holo对话框的显示(实际上我不确定)是基于正常
的主题皮肤活动
如果您确实想了解Mvx对话框插件,请参阅《谢谢斯图尔特》中的N=23。我们将研究这些替代方案。同样,您的框架是一流的。看起来这类似于我在上面所做的,尽管我没有填充对话框的内容区域。