Диалоговое окно - ошибка доступа к значению внутри текста редактирования - PullRequest
0 голосов
/ 14 декабря 2011

У меня есть EditText внутри диалогового окна, в котором пользователь вводит новую категорию.Тем не менее, когда я пытаюсь получить доступ к значению внутри EditText - я получаю исключение nullpointer.

Процесс выполнения.

Существует вращатель для категорий Когда пользователь выбирает новую категорию из счетчика, диалоговое окнопоказано пользователю.

Код для диалога выглядит следующим образом:

   //check if spCategories == new category
   if( arg0.getSelectedItem().toString().equals("New Category")) {
   //Show dialog box for adding new category
     Dialog dialog = new Dialog(AddTransaction.this);
     dialog.setContentView(R.layout.newcategory);
     dialog.setTitle("New Category");
     dialog.setCancelable(true);
     dialog.show();

     Button btnAddCat = (Button) dialog.findViewById(R.id.btnAddCategory);
     final EditText etCategory = (EditText) findViewById(R.id.etNewCategory);

     btnAddCat.setOnClickListener(new View.OnClickListener() {

     @Override
     public void onClick(View arg0) {
       **Log.v("EXT", "Category type is : " + etCategory.getText());**
     } 
                        }
     });

Я получаю исключение NullPointer, когда на жирной линии

Любые идеи.Макет для диалога определен в файле XML.

1 Ответ

1 голос
/ 14 декабря 2011

Линия:

final EditText etCategory = (EditText) findViewById(R.id.etNewCategory);

неверно, вы должны изменить его на:

final EditText etCategory = (EditText) dialog.findViewById(R.id.etNewCategory);

Без «диалога». Вы ищете это представление внутри макета активности вместо диалога.

...