Проблема добавить один массив в другой (ArrayList1.addAll(ArrayList2)
Есть два активити - MainActivity и Practice. В Practice созданы пустые 2 массива:
static ArrayList<String> engSuperList = new ArrayList<>();
static ArrayList<String> rusSuperList = new ArrayList<>();
При включении switch-кнопки в МэйнАктивити в эти массивы должны добавляться все элементы из массивов, заданных в MainActivity (с сохранением массивов из Practice и состояния кнопки switch в MainActivity):
private String[] arrEngPhrases;
private String[] arrRusPhrases;
ArrayList<String> engPhrases;
ArrayList<String> rusPhrases;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
arrEngPhrases = getResources().getStringArray(R.array.englishPhrases);
arrRusPhrases = getResources().getStringArray(R.array.russianPhrases);
engPhrases = new ArrayList<>(Arrays.asList(arrEngPhrases));
rusPhrases = new ArrayList<>(Arrays.asList(arrRusPhrases));
SharedPreferences sharedPreferences = getSharedPreferences("save", MODE_PRIVATE);
switch1.setChecked(sharedPreferences.getBoolean("value1", true));
switch1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (switch1.isChecked()) {
Practice.engSuperList.addAll(engPhrases);
Practice.rusSuperList.addAll(rusPhrases);
SharedPreferences.Editor editor = getSharedPreferences("save", MODE_PRIVATE).edit();
Gson gson = new Gson();
String jsonEngSuper = gson.toJson(Practice.engSuperList);
String jsonRusSuper = gson.toJson(Practice.rusSuperList);
editor.putString("english super", jsonEngSuper);
editor.putString("russian super", jsonRusSuper);
editor.putBoolean("value1", true);
editor.apply();
switch1.setChecked(true);
} else {
Practice.engSuperList.removeAll(engPhrases);
Practice.rusSuperList.removeAll(rusPhrases);
SharedPreferences.Editor editor = getSharedPreferences("save", MODE_PRIVATE).edit();
Gson gson = new Gson();
String jsonEngSuper = gson.toJson(Practice.engSuperList);
String jsonRusSuper = gson.toJson(Practice.rusSuperList);
editor.putString("english super", jsonEngSuper);
editor.putString("russian super", jsonRusSuper);
editor.putBoolean("value1", false);
editor.apply();
switch1.setChecked(false);
}
}
});
В итоге когда переключаю switch, то ЛогКэт выдает ошибку null object reference с указанием на строку, в которой содержится Practice.engSuperList.addAll(engPhrases);
Массивы в xml заполнены верно, я уже это делал.
В чем может быть проблема?