我想知道如何(如果可能的话)在单声道中为 droid 应用程序创建模式弹出窗口。
场景:应用程序与客户托管的 Web 服务器进行通信(因此该位置对于不同的客户来说是不同的)。要使用该应用程序,用户必须指定其 Web 服务器的连接字符串。因此,当应用程序启动并进入主 Activity 时,我要做的第一个任务是检查设备应用程序设置中是否设置了连接字符串。如果不是,我想抛出一个简单的模式弹出窗口,允许用户指定与其服务器的连接。
我真的不想启动正常 Activity ,因为用户将能够单击后退按钮并返回主菜单,并且应用程序处于无效状态,因为它不知道要与哪个服务器通信。
关于如何解决这个问题有什么想法吗?
或者我应该构建 Activity 链,以便在第一个 Activity 中输入连接字符串,这样如果他们单击返回,它实际上会退出应用程序?
我有点困惑。
提前致谢
最佳答案
这可以通过 AlertDialog
实现。它可以创建带有列表、复选框、是/否按钮和自定义 View 的简单输入对话框。
Xamarin Sample Repository中有一个示例对于不同类型的对话框,您可以在底部找到一个添加了带有用户名和密码字段的自定义 View 的对话框。
因此,首先定义要放入 AlertDialog
中的自定义 View 。 alert_dialog_connection_entry.xml
是一个布局
:
在您的 Activity 中的某个位置添加代码:
var connection_string_view = LayoutInflater.Inflate(Resource.Layout.alert_dialog_connection_entry, null);
var builder = new AlertDialog.Builder(this);
builder.SetTitle("Connection String");
builder.SetView(connection_string_view);
builder.SetPositiveButton("OK", OkClicked);
builder.SetNegativeButton("Cancel", CancelClicked);
builder.Create();
builder.Show();
为按钮添加一些处理程序:
private void CancelClicked(object sender, DialogClickEventArgs dialogClickEventArgs)
{
//Todo
}
private void OkClicked(object sender, DialogClickEventArgs dialogClickEventArgs)
{
var dialog = sender as AlertDialog;
if (null != dialog)
{
var connectionEdit = dialog.FindViewById(Resource.Id.connectionstring_edit) as EditText;
if (null != connectionEdit)
Console.WriteLine("Connection String: {0}", connectionEdit.Text);
}
}
应该是这样。您应该能够在对话框中放置任何类型的自定义 View 。
关于android - Mono Droid 模态弹出窗口,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14390058/