2012-06-02 3 views
0

В моем сценарии есть кнопка на главном экране, когда пользователь нажимает кнопку, появляется диалоговое окно с текстовой кнопкой и кнопкой 2. Моя проблема в том, что когда я пытаюсь получить значение из текста редактирования, кажется, ничего не происходит, и значение всегда равно NULL.Как получить значение EditText из customDialog

Это мой код: Я объявляю диалог внутри основной деятельности

private void popup() { 
     AlertDialog.Builder builder; 
     AlertDialog alertDialog; 

     LayoutInflater inflater = (LayoutInflater) this.getSystemService(LAYOUT_INFLATER_SERVICE); 
     View dialog = inflater.inflate(R.layout.isbn_dialog, 
             (ViewGroup) findViewById(R.id.layout_root)); 

        // The edit text from dialog 
     isbnInput = (EditText)dialog.findViewById(R.id.isbn); 

     builder = new AlertDialog.Builder(this); 
     builder.setNegativeButton("Cancel", new DialogInterface.OnClickListener() { 

      public void onClick(DialogInterface dialog, int which) { 

      } 
     }); 
     builder.setPositiveButton("Add", new DialogInterface.OnClickListener() { 

      public void onClick(DialogInterface dialog, int which) { 
       Toast.makeText(getApplicationContext(), isbnInput.getText().toString(), Toast.LENGTH_LONG); 
      } 
     }); 

     builder.setView(dialog); 
     alertDialog = builder.create(); 
     alertDialog.setTitle("Enter ISBN Number"); 
     alertDialog.show(); 
} 

Так как я могу получить значение из текста диалога редактирования должным образом?

ответ

1

Эта линия должна быть,

Toast.makeText(getApplicationContext(), isbnInput.getText().toString(), Toast.LENGTH_LONG).show(); 

Вы забыли show() Тост внутри кнопки мыши .. В

Попробуй ..

0

Я didnot видеть вашу ссылку editext с AlertDialog.

Попробуйте с этим, такой же, как ты, и уверен, что дело в том, что я могу получить editText правильно

AlertDialog.Builder alert = new AlertDialog.Builder(this); 
    alert.setMessage(getResources().getString(R.string.my_email)); 
    final EditText input = new EditText(this); 



    final LinearLayout layout = new LinearLayout(this); 
    LayoutParams params = new LayoutParams(
      (int) getResources().getDimension(R.dimen.simple_alert_width_normal), 
      LayoutParams.WRAP_CONTENT); 
    params.setMargins(10, 0, 10, 0); 
    layout.addView(input, params); 

    alert.setView(layout); 
    alert.setPositiveButton(R.string.OK, 
      new DialogInterface.OnClickListener() { 
      // DO some thing here 

      }); 

    alert.setNegativeButton(R.string.cancel, 
      new DialogInterface.OnClickListener() { 
       public void onClick(DialogInterface dialog, int whichButton) { 
        // Canceled. 

       } 
      }); 

    alert.show(); 
Смежные вопросы