在android中读取EditText的文本

Vin*_*rya 6 android

我正在写一个简单的Android应用程序,它有一个edittext和一个按钮.单击按钮应显示一个警告对话框,其中包含在edittext中输入的文本.为此,我有以下代码:

String txt; 
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState){
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);

    Button b=(Button)findViewById(R.id.ok);

    AlertDialog.Builder builder = new AlertDialog.Builder(this);
    builder.setMessage("Text in edit box: " + txt)
        .setCancelable(false)
        .setTitle("Info")
        .setPositiveButton("Done", new DialogInterface.OnClickListener() {
             public void onClick(DialogInterface dialog, int id) {}
    });

    final AlertDialog alert = builder.create();

    // set click listener on the flag to show the dialog box 
    b.setOnClickListener(new View.OnClickListener() {
       public void onClick(View v) {
          EditText et=(EditText)findViewById(R.id.entry);
          txt=et.getText().toString();
          alert.show();
       }
    });

}
Run Code Online (Sandbox Code Playgroud)

上面的代码运行正常,但警告对话框显示编辑框中的文本:null.它应该显示编辑框的文本.

Pin*_*nki 7

在按钮单击之外写下此行

EditText et=(EditText)findViewById(R.id.entry);
txt=et.getText().toString();
Run Code Online (Sandbox Code Playgroud)


Jav*_*tor 3

声明时间

builder.setMessage("Text in edit box: " + txt)
Run Code Online (Sandbox Code Playgroud)

已执行 txt 变量中包含 null。这就是原因。

尝试让该语句在单击按钮后执行。肯定能100%解决问题