У меня есть класс 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);
Как исправить ошибку и запустить приложение?