Нужна помощь в понимании сообщения logcat ClassCastException

    final EditText edt =findViewById(R.id.type_text);
    final TextView txt= findViewById(R.id.empty_text);
    Button   btn =      findViewById(R.id.button_add);
    final String value = edt.getText().toString();

    btn.setOnClickListener(new View.OnClickListener() {
        public void onClick(View view) {
            txt.append(value+"\n");
            edt.setText("");
        }
    });

Это строка 40 --> final EditText edt =findViewById(R.id.type_text);

Логкэт сообщение
Caused by: java.lang.ClassCastException: android.support.design.widget.TextInputLayout cannot be cast to android.widget.EditText at com.example.todo.activitity2.onCreate(activitity2.java:40)

Пожалуйста, опубликуйте код вашего xml-файла. Так что мы можем помочь.

Kaushal Panchal 31.03.2019 11:04

ваш "type_text" - это TextInputLayout в вашем макете, и вы пытаетесь преобразовать его в текст редактирования, например "final EditText edt = findViewById (R.id.type_text);" вот почему это дает вам ошибку classCast. попробуйте использовать "final TextInputLayout tv =findViewById(R.id.type_text);"

android 31.03.2019 11:05

Попробуйте бросить (TextInputEditText)

Amirhosein Heydari 31.03.2019 11:46
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
1
3
39
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий

В XML-файле вашего макета есть TextInputLayout с идентификатором type_text, который вы пытаетесь преобразовать в Редактировать текст.

В вашем файле XML измените этот TextInputLayout на Редактировать текст.

ИЛИ

В вашем файле Class.java исправьте это: final EditText edt = findViewById(R.id.type_text);

к

final TextInputLayout your_name = findViewById(R.id.type_text);

вам нужно изменить это:

final EditText edt = findViewById(R.id.type_text);

В правильный класс: (R.id.type_text - это TextInputLayout, и вы создали его как EditText, и это вызывает исключение)

final TextInputLayout edt = findViewById(R.id.type_text);

Другие вопросы по теме