从对话框函数中获取用户输入值

时间:2017-08-22 16:22:12

标签: android

我想从对话框函数中获取一个简单的String到变量“name”中。 第一个AS告诉我:“变量'名称'是从内部类中访问的,需要声明为final”。如果我做到最后它告诉我最终值不能改变。我已经找到了一些类似的问题和教程,但他们只是用吐司或其他方式显示用户输入。我需要那里的价值。这可能是基本的,但目前我无法进一步......

protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);
    Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
    setSupportActionBar(toolbar);
    TextView eventNameETMain = (TextView) findViewById(R.id.hello_world);
    String name;

    FloatingActionButton fab = (FloatingActionButton) findViewById(R.id.fab);
    fab.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            View adView = getLayoutInflater().inflate(R.layout.dialog_new_event, null);

            AlertDialog.Builder eventNameAB = new AlertDialog.Builder(Main.this);
            eventNameAB.setView(adView);
            final EditText eventNameET = (EditText)adView.findViewById(R.id.eventNameET);

            eventNameAB.setCancelable(true).setPositiveButton("Ok", new DialogInterface.OnClickListener() {
                @Override
                public void onClick(DialogInterface dialogInterface, int i) {
                    name = eventNameET.getText().toString();
                }
            });

            AlertDialog dialog = eventNameAB.create();
            dialog.show();
        }
    });
}

1 个答案:

答案 0 :(得分:0)

最简单的方法是声明类级变量,如下所示:

class MyActivity extends Activity {
    private String mName = null;

然后再

mName = eventNameET.getText().toString();

然后在您需要的任何地方访问变量。