2011-02-17 6 views
6

私は編集テキストとボタンを持つ簡単なアンドロイドアプリを書いています。ボタンをクリックすると、編集テキストにテキストが入力された警告ダイアログが表示されます。アンドロイドで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(); 
     } 
    }); 

} 

は、上記のコードがうまく実行されているが、警告ダイアログが編集ボックスにテキストを示しています:ヌル .ITは、エディットボックスのテキストを表示する必要があり、そのために私は次のコードを持っています。

答えて

3

変数がそれにヌルを持つTXT声明

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

が実行されてしまった時。これは理由です。

このステートメントを取得するには、ボタンをクリックしてから実行してください。 これは問題を確実に除去するために100%となります。

1

アラートを作成するため、アラート内のtxtはnullです。ボタンをクリックすると、ダイアログのtxtがnullであることを示すアラートが表示されます。ボタンの外にあるボタン

+1

をクリックして、誰かがすでにそれを掲示した場合、あなたは答えを投票すべきだと思ういけません。 seprateの回答を投稿するのではなく、 みんながこのコミュニティを魚市場を作るのではなく、すべての人に恩恵をもたらします – Javanator

6

書き込み、この行は

EditText et=(EditText)findViewById(R.id.entry); 
txt=et.getText().toString(); 
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(); 
       } 
      }); 

     } 
関連する問題