@anya_hacker

Как исправить ошибку с context?

У меня есть класс Questions, в котором инициализирую массивы строк.
Т.к. нужен context для получения Strings Resources, я передаю его в конструктор, когда создаю экземпляр класса в активности MainActivity:

MainActivity.java
HashMap<String, String[]> questions = new HashMap(); // словарь: ключ - строка, значение - массив строк из Questions.java
Questions q = new Questions(this);

questions.put(getResources().getString(R.string.question1), q.arr1);
questions.put(getResources().getString(R.string.question2), q.arr2);
questions.put(getResources().getString(R.string.question3), q.arr3);


Questions,java
package ru.examplle.pravmin;
import ru.examplle.pravmin.R;
import android.content.Context;

public class Questions {
    private Context context;

    public Questions(Context cur) {
        this.context = cur;
    }


    String[] arr1 = {context.getResources().getString(R.string.answer1_for_question1), context.getResources().getString(R.string.answer2_for_question1), context.getResources().getString(R.string.answer3_for_question1), context.getResources().getString(R.string.answer4_for_question1), context.getResources().getString(R.string.right_answer_for_question1), context.getResources().getString(R.string.comment_for_question1)};
    String[] arr2 = {context.getResources().getString(R.string.answer1_for_question2), context.getResources().getString(R.string.answer2_for_question2), context.getResources().getString(R.string.answer3_for_question2), context.getResources().getString(R.string.answer4_for_question2), context.getResources().getString(R.string.right_answer_for_question2), context.getResources().getString(R.string.comment_for_question2)};
    String[] arr3 = {context.getResources().getString(R.string.answer1_for_question3), context.getResources().getString(R.string.answer2_for_question3), context.getResources().getString(R.string.answer3_for_question3), context.getResources().getString(R.string.answer4_for_question3), context.getResources().getString(R.string.right_answer_for_question3), context.getResources().getString(R.string.comment_for_question3)};
 }

Я в активности хочу брать эти массивы из класса Questions и с ними работать. Но при запуске приложения вылетает исключение:
Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'android.content.res.Resources android.content.Context.getResources()' on a null object reference
        at ru.examplle.pravmin.Questions.<init>(Questions.java:15) // строка String[] arr1 = {context.getResources().getString(R.string.answer1_for_question1), context.getResources().getString(R.string.answer2_for_question1), context.getResources().getString(R.string.answer3_for_question1), context.getResources().getString(R.string.answer4_for_question1), context.getResources().getString(R.string.right_answer_for_question1), context.getResources().getString(R.string.comment_for_question1)};
        at ru.examplle.pravmin.MainActivity.onCreate(MainActivity.java:116) // строка Questions q = new Questions(this);

Как исправить ошибку и запустить приложение?
  • Вопрос задан
  • 190 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы