ошибка "Attempt to get length of null array"
В приложении 8 TextView и 8 EditText. При нажатии кнопки "настроить" (showbtn), TextView становятся невидимыми, EditText - видимыми. В поля вводится текст и после нажатия кнопки "сохранить"(savebtntext), введенный текст присваивается соответствующим TextView, сохраняется в файл и должен подгружаться при входе в activity.
Код:
public class PnDay extends Activity implements View.OnClickListener {
TextView[] lessons;
EditText[] editTexts;
Button savebtntext, showbtn, pnbackbutton;
SharedPreferences sPref;
final String[] SAVED_TEXTS = {
"saved_text",
"saved_text2",
"saved_text3",
"saved_text4",
"saved_text5",
"saved_text6",
"saved_text7",
"saved_text8"};
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.pnday);
final EditText[] editTexts = {
(EditText) findViewById(R.id.editText1),
(EditText) findViewById(R.id.editText2),
(EditText) findViewById(R.id.editText3),
(EditText) findViewById(R.id.editText4),
(EditText) findViewById(R.id.editText5),
(EditText) findViewById(R.id.editText6),
(EditText) findViewById(R.id.editText7),
(EditText) findViewById(R.id.editText8)};
final TextView[] lessons = {
(TextView) findViewById(R.id.lesson1pn),
(TextView) findViewById(R.id.lesson2pn),
(TextView) findViewById(R.id.lesson3pn),
(TextView) findViewById(R.id.lesson4pn),
(TextView) findViewById(R.id.lesson5pn),
(TextView) findViewById(R.id.lesson6pn),
(TextView) findViewById(R.id.lesson7pn),
(TextView) findViewById(R.id.lesson8pn)};
showbtn = (Button) findViewById(R.id.showbtntext);
showbtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
showbtn.setVisibility(View.INVISIBLE);
savebtntext.setVisibility(View.VISIBLE);
for (final EditText editText : editTexts) {
editText.setVisibility(View.VISIBLE);
}
for (final TextView textView : lessons) {
textView.setVisibility(View.INVISIBLE);
}
AudioManager audioManager = (AudioManager) getSystemService(AUDIO_SERVICE);
mSound2.play(mMelody, 1, 1, 1, 0, 1);
}
});
savebtntext = (Button) findViewById(R.id.savebtntext);
savebtntext.setOnClickListener(this);
ConstLay = (ConstraintLayout) findViewById(R.id.ConstLay);
pnrasp = (TextView) findViewById(R.id.pnrasp);
final Bundle arguments = getIntent().getExtras();
x = arguments.getInt("x");
loadText();
}
@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.savebtntext:
saveText();
showbtn.setVisibility(View.VISIBLE);
savebtntext.setVisibility(View.INVISIBLE);
for (final EditText editText : editTexts) {
editText.setVisibility(View.INVISIBLE);
}
for (final TextView textView : lessons) {
textView.setVisibility(View.VISIBLE);
}
AudioManager audioManager = (AudioManager) getSystemService(AUDIO_SERVICE);
mSound.play(mMelody, 1, 1, 1, 0, 1);
loadText();
break;
default:
break;
}
}
void saveText() {
sPref = getPreferences(MODE_PRIVATE);
SharedPreferences.Editor ed = sPref.edit();
for (final EditText editText : editTexts) {
for (final String SAVED_TEXT : SAVED_TEXTS) {
ed.putString(SAVED_TEXT, editText.getText().toString());
}
}
ed.commit();
}
void loadText() {
sPref = getPreferences(MODE_PRIVATE);
for (final String SAVED_TEXT : SAVED_TEXTS) {
String savedText = sPref.getString(SAVED_TEXT, "");
for (final TextView lesson : lessons) {
lesson.setText(savedText);
for (final EditText editText : editTexts) {
editText.setText(savedText);
}
}
}
}
Проблема возникает в loadText() в строке:
for (final TextView lesson : lessons) {
Из-за чего это происходит?