2017-10-19 103 views
0

現在我感覺真的很笨,我真的希望生病能找到這樣的解決方案。對話框中的android edittext返回null

我想要做的事情:警報有一個edittext,這個edittext的輸入將用於下一個活動 我的問題是字符串測試總是空的。我究竟做錯了什麼?

public void CalibrateButtonClicked(View v) { 
AlertDialog.Builder builder = new AlertDialog.Builder(this); 
LayoutInflater inflater = this.getLayoutInflater(); 

final View dialogView = inflater.inflate(R.layout.dialog, null); 
builder.setMessage("calibration"); 


builder.setView(dialogView) 
     .setPositiveButton("OK", new DialogInterface.OnClickListener() { 
      @Override 
      public void onClick(DialogInterface dialog, int which) { 
       // startActivity(new Intent(FaceMenu.this, FaceTrackerActivity.class)); 
       EditText edit = (EditText)dialogView.findViewById(R.id.editText2); 
       String test= edit.getText().toString(); 
       Intent intent = new Intent(getBaseContext(), FaceTrackerActivity.class); 
       intent.putExtra("EXTRA_SESSION_ID", test); 
       startActivity(intent); 

      } 
     }) 
     .create().show(); 
} 
+0

的'EditText'爲空,或者'gettext的()的toString()'返回一個空'String'? –

+0

test爲null,意味着getText()。toString()也爲null – user9821

+0

'getText()。toString()'不會返回null。它可能會返回一個空的'String',但這不是一回事。它是返回一個空的'String',還是在那裏崩潰? –

回答

0

初始化您EditText外面你setPositiveButton

像:

public void CalibrateButtonClicked(View v) { 
AlertDialog.Builder builder = new AlertDialog.Builder(this); 
LayoutInflater inflater = this.getLayoutInflater(); 

final View dialogView = inflater.inflate(R.layout.dialog, null); 
final EditText edit = (EditText)dialogView.findViewById(R.id.editText2); 

builder.setMessage("calibration"); 
builder.setView(dialogView) 
     .setPositiveButton("OK", new DialogInterface.OnClickListener() { 
      @Override 
      public void onClick(DialogInterface dialog, int which) { 
       // startActivity(new Intent(FaceMenu.this, FaceTrackerActivity.class)); 
       String test= edit.getText().toString(); 
       Intent intent = new Intent(getBaseContext(), FaceTrackerActivity.class); 
       intent.putExtra("EXTRA_SESSION_ID", test); 
       startActivity(intent); 

      } 
     }) 
     .create().show(); 
} 
0

你可以嘗試把視圖綁定出OnClickListener嗎?

public void CalibrateButtonClicked(View v) { 
    AlertDialog.Builder builder = new AlertDialog.Builder(this); 

    final View dialogView = View.inflate(R.layout.dialog, null); 
    EditText edit = (EditText) dialogView.findViewById(R.id.editText2); 

    builder.setMessage("calibration"); 
    builder.setView(dialogView) 
     .setPositiveButton("OK", new DialogInterface.OnClickListener() { 
      @Override 
      public void onClick(DialogInterface dialog, int which) { 
      // startActivity(new Intent(FaceMenu.this, FaceTrackerActivity.class)); 
      String test= edit.getText().toString(); 
      Intent intent = new Intent(getBaseContext(), FaceTrackerActivity.class); 
      intent.putExtra("EXTRA_SESSION_ID", test); 
      startActivity(intent); 

      } 
     }) 
     .create().show(); 
    }