android - 使用 AlertDialog.Builder 从对话框中保存值

标签 android input io android-alertdialog

我是一个新的 Android 开发者,有一个潜在的愚蠢问题。
在我的 Activity 创建中,我想制作一个弹出对话框来提示用户输入。然后我想获取该输入并将其保存为全局变量以备后用。目前我有

 public class MgenActivity extends Activity {

// Instance Variables
String ip = "";

/**
 * On Create
 */
public void onCreate(Bundle icicle) {
    super.onCreate(icicle);
    setContentView(R.layout.main);
    String box = dialogBoxStart();
    this.ip = box;
    //more code 
    }

public String dialogBoxStart() 
{
    String returned = "";
    AlertDialog.Builder alert = new AlertDialog.Builder(this);
    alert.setTitle("MGEN Setup");
    alert.setMessage("Please enter the MGEN IP address such as \n 9.42.68.69");

    // Set an EditText view to get user input
    final EditText input = new EditText(this);
    alert.setView(input);

    DialogInterface.OnClickListener listener = new DialogInterface.OnClickListener() 
    {
            public void onClick(DialogInterface dialog, int whichButton) 
            {
            //send user input to global?
            //this doesnt work: this.ip  = input.getText().toString();
            }
    };

    alert.setPositiveButton("Ok", listener);

    alert.setNegativeButton("Cancel",
            new DialogInterface.OnClickListener() {
                public void onClick(DialogInterface dialog, int whichButton) {
                    // Canceled.
                }
            });
    returned =  input.getText().toString();
    alert.show();
    return returned;

}

问题是我的 EditText“输入”没有保存用户输入,所以我不能向外保存它。同样,我无法从我的 onClick 方法中与我的外部变量对话。

所以 TLDR:如何保存对话框中的输入?

最佳答案

就这么简单。

DialogInterface.OnClickListener listener = new DialogInterface.OnClickListener() {
    public void onClick(DialogInterface dialog, int whichButton) {
        ip = input.getText().toString();
    }
};

关于android - 使用 AlertDialog.Builder 从对话框中保存值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17995628/

相关文章:

java - android: ConcurrentModificationException 与 map 覆盖

java - Unity Daydream APK构建失败

C - 读取未知格式的输入

c++ - 测试用户是否按回车键(同时仍在测试良好输入)

android - RxJava 中的 CompositeDisposable 是什么

C++;使用字符串 getline() 不适用于文件输入

linux - golang 将结构写为原始数据

c - 在 C 中打开二进制文件

c - 将txt文件放入数组中从第12个元素开始

android - 使用 sqlite 数据库在 Android 中完成登录和注册?