Android EditText view интерпретируется как ImageView?

#android #imageview #android-edittext

#Android #imageview #android-edittext

Вопрос:

В моем приложении я создаю диалоговое окно, например:

 dialogview = inflater.inflate(R.layout.registration_dialog, null);
dialog = new AlertDialog.Builder(this);
dialog.setView(dialogview);
  

А затем, присвоив несколько представлений переменным:

     username = (EditText)dialogview.findViewById(R.id.username);
    password = (EditText)dialogview.findViewById(R.id.password);
    confirm = (EditText)dialogview.findViewById(R.id.confirm);
    rememberme = (CheckBox)dialogview.findViewById(R.id.rememberme);
    autologin = (CheckBox)dialogview.findViewById(R.id.autologin);
  

Все переменные определены соответствующим образом перед моим onCreate:

 private EditText username;
private EditText password;
private CheckBox rememberme;
private CheckBox autologin;
private EditText confirm;
  

Однако, когда я пытаюсь создать диалоговое окно, приложение выходит из строя. Я проверил отладчик eclipse, который сообщает об ошибке:

 java.lang.ClassCastException: android.widget.ImageView
  

в строке

 confirm = (EditText)dialogview.findViewById(R.id.confirm);
  

Определение XML для поля подтверждения выглядит следующим образом:

 <EditText android:id="@ id/confirm"
android:layout_width="fill_parent" 
android:layout_height="wrap_content"
android:layout_weight="1"
android:inputType="textPassword">
</EditText>
  

Я в замешательстве — в моем dialoglayout нет даже ImageViews. Это какой-то странный сбой? Есть идеи?

Ответ №1:

The R.java файл необходимо обновить. Попробуйте очистить свой проект и снова скомпилировать.

Комментарии:

1. Ого, спасибо! Я не ожидал, что это будет так просто — тем более, что ImageView никогда не было, я бы не догадался, что ему просто нужно обновить. Я отмечу это как принятое после истечения 5-минутного ограничения.