Сейчас я изучаю Android, на котором сначала я создаю текст редактирования, а при обновлении кнопки изменить на целое число

#android #performance #android-studio

#Android #Производительность #android-studio

Вопрос:

Я использую Android studio для создания нового приложения.Я создал действие кнопки. Ниже приведен фрагмент кода.

 final EditText text = (EditText) findViewById(R.id.editText);
        Button button = (Button) findViewById(R.id.addButton);

        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        button.setOnClickListener(
                new View.OnClickListener(){

                    @Override
                    public void onClick(View v) {
                        try {
                            int myNum = Integer.parseInt(text.getText().toString());
                        } catch(NumberFormatException nfe) {

                        }
                    }
                }
        );
 

Когда я пытаюсь запустить модуль, он выдает это сообщение об ошибке.

введите описание изображения здесь Что это за сообщение об ошибке? Я не могу этого понять.

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

1. Сообщение об ошибке сообщает вам, что приложение разбилось. Вероятно, потому, что вы вызываете findViewById до того, как ваш макет будет увеличен, поэтому объект недействителен

2. Вы проверили ошибку stackstrace? Проверьте свой журнал и вставьте ошибку здесь.

Ответ №1:

 final EditText text = (EditText) findViewById(R.id.editText);
Button button = (Button) findViewById(R.id.addButton);
 

поместите вышеуказанные строки сразу после этих строк

 super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
 

то есть,

 super.onCreate(savedInstanceState);
 setContentView(R.layout.activity_main);
 final EditText text = (EditText) findViewById(R.id.editText);
 Button button = (Button) findViewById(R.id.addButton);
 

В противном случае ваша активность не сможет найти представление с идентификаторами «EditText» и «addButton».
Вызывая setContentView(R.layout.activity_main), вы говорите, что ваша активность, activity_main — это макет для вашей активности, и все виды, на которые вы ссылаетесь, взяты из этого макета.