当用户Button在我的应用程序中单击 a (打印在 a 中SurfaceView)时,我希望Dialog出现一个文本,并且我希望将结果存储在 a 中String。我希望文本Dialog覆盖当前屏幕。我怎样才能做到这一点?
Button
SurfaceView
Dialog
String
听起来像是使用AlertDialog的好机会。
看起来很基本,Android 没有内置对话框来执行此操作(据我所知)。幸运的是,这只是在创建标准 AlertDialog 之上的一点额外工作。您只需创建一个 EditText 供用户输入数据,并将其设置为 AlertDialog 的视图。如果需要,您可以使用setInputType自定义允许的输入类型。
如果您能够使用成员变量,您可以简单地将变量设置为 EditText 的值,并且在对话框关闭后它将保持不变。如果不能使用成员变量,则可能需要使用侦听器将字符串值发送到正确的位置。(如果这是您需要的,我可以编辑和详细说明)。
在你的班级内:
private String m_Text = "";
在按钮的 OnClickListener 中(或从那里调用的函数中):
AlertDialog.Builder builder = new AlertDialog.Builder(this); builder.setTitle("Title"); // Set up the input final EditText input = new EditText(this); // Specify the type of input expected; this, for example, sets the input as a password, and will mask the text input.setInputType(InputType.TYPE_CLASS_TEXT | InputType.TYPE_TEXT_VARIATION_PASSWORD); builder.setView(input); // Set up the buttons builder.setPositiveButton("OK", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { m_Text = input.getText().toString(); } }); builder.setNegativeButton("Cancel", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { dialog.cancel(); } }); builder.show();