Калькулятор списка массивов

#android #listview #arraylist

Вопрос:

Мой план состоит в том, чтобы создать приложение с 1 редактируемым текстом, в котором пользователь вводит любое число, и 5-6 полей списка, где это введенное число будет умножено на 2, 3 и т. Д.

Проблема в том, что мое приложение выходит из строя после запуска, нужна помощь :/

 public class MainActivity extends AppCompatActivity {

    EditText numberEntered = findViewById(R.id.enterNum);

    int enteredNum = Integer.parseInt(String.valueOf(numberEntered));
    

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        ListView listView1 = findViewById(R.id.listNum);

        ArrayList<Integer> intArray = new ArrayList<>();

        ArrayAdapter <Integer> intAdapter = new ArrayAdapter<Integer>(this, android.R.layout.simple_list_item_1, intArray);

        listView1.setAdapter(intAdapter);

        listView1.setOnItemClickListener(new AdapterView.OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {
                intArray.add(2 * enteredNum);
                intArray.add(3 * enteredNum);
                intArray.add(4 * enteredNum);
                intArray.add(5 * enteredNum);
            }
        });
 

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

1. что такое журнал ошибок ?

2. Не удалось создать экземпляр activity ComponentInfo{com.пример.расписание/com.пример.расписание. Основная активность}: java.lang. Исключение NullPointerException: Попытка вызвать виртуальный метод ‘android.content.pm.ApplicationInfo android.content. Context.getApplicationInfo()’ для ссылки на нулевой объект

Ответ №1:

Попробуйте переместить эти строки в свой метод onCreate после setContent

  EditText numberEntered = findViewById(R.id.enterNum);

 int enteredNum = Integer.parseInt(String.valueOf(numberEntered));
 

и помещенный Integer.parseInt в try/catch block другое, он вызовет исключение, когда редактируемый текст пуст.

 public class MainActivity extends AppCompatActivity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        EditText numberEntered = findViewById(R.id.enterNum);
    
        int enteredNum = -1;
        
        try{
           enteredNum = Integer.parseInt(String.valueOf(numberEntered));
         } catch(Exception exception){
           //do something with error
         }

        ListView listView1 = findViewById(R.id.listNum);

        ArrayList<Integer> intArray = new ArrayList<>();

        ArrayAdapter <Integer> intAdapter = new ArrayAdapter<Integer>(this, android.R.layout.simple_list_item_1, intArray);

        listView1.setAdapter(intAdapter);

        listView1.setOnItemClickListener(new AdapterView.OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {
                intArray.add(2 * enteredNum);
                intArray.add(3 * enteredNum);
                intArray.add(4 * enteredNum);
                intArray.add(5 * enteredNum);
            }
        });
}