簡體   English   中英

在android中讀取EditText的文本

[英]Reading text of an EditText in 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。它應該顯示編輯框的文本。

在按鈕單擊之外寫下此行

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

聲明的時間

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

執行了txt變量,其中包含null。 這個原因。

嘗試在按鈕單擊后執行此語句。 它將100%肯定刪除問題

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

        }

因為您構建警報,警報中的txt為null,當您單擊按鈕顯示對話框的txt為空的警報時,您應該在單擊按鈕后發出警報

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM