在android中读取EditText的文本

时间:2011-02-17 11:42:26

标签: 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();
       }
    });

}

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

4 个答案:

答案 0 :(得分:7)

在按钮点击外面写下这一行

EditText et=(EditText)findViewById(R.id.entry);
txt=et.getText().toString();

答案 1 :(得分:3)

陈述的时间

builder.setMessage("Text in edit box: " + txt)

执行了txt变量,其中包含null。这就是原因。

尝试在按钮单击后执行此语句。 它将100%肯定删除问题

答案 2 :(得分:1)

因为您构建警报,警报中的txt为null,当您单击按钮显示对话框的txt为空的警报时,您应该在单击按钮后发出警报

答案 3 :(得分:1)

Use as following:

   public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);

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


            builder = new AlertDialog.Builder(this);

            b.setOnClickListener(new View.OnClickListener() {
                public void onClick(View v) {
                    EditText et = (EditText) findViewById(R.id.editText1);
                    txt = et.getText().toString();
                    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();
                    alert.show();
                }
            });

        }