Я создаю приложение в студии Android на Java и пытаюсь вернуть размер списка с помощью функции .size(), но приложение на моем устройстве продолжает падать, когда я его использую.
Чтобы увидеть мой результат в приложении, я инициализировал TextView
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;
import android.widget.TextView;
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
TextView testTextView = findViewById(R.id.testText);
List<String> list = Arrays.asList("test","try");
testTextView.setText(list.size());
Я пытался использовать другие функции, чтобы увидеть, правильно ли я написал список «список» или нет, и когда я использовал:
testTextView.setText(list.get(0));
Это сработало и показывает test
в результате
Я не думаю, что это исключение нулевого указателя, потому что мы можем получить доступ к списку с помощью функции .get(). Но если это так, вы не знаете, почему?
Я не знаком с программированием Android. Но быстрый веб-поиск говорит, что метод testTextView.setText(int r);
, r
— это идентификатор ресурса для отображаемой строки. Кстати, было бы полезно иметь тег [android] в вопросе.
Пожалуйста, отредактируйте свой вопрос, чтобы предоставить правильный минимально воспроизводимый пример и ошибку, которую вы получаете.
Пожалуйста, вставьте трассировку стека из сбоя в свой вопрос (хорошо отформатированный как код).
Кажется, проблема возникла из этой строки:
testTextView.setText(list.size());
текстовое представление принимает строки в качестве параметров, но вы даете им Int, что вызывает вашу проблему. Чтобы исправить это, вы можете использовать функцию String.valueOf() в java для преобразования целочисленного размера в строку, которая будет принята компонентом:
testTextView.setText(String.valueOf(list.size()));
Если вы хотите показать размер списка, попробуйте
testTextView.setText(Integer.toString(list.size()));