Я получаю исключение NullPointerException, созданное рядом моих пользователей, и я не могу определить, в чем проблема, оно отображается в этой строке:
((Button)findViewById(R.id.speakEnglishButton)).setText("");
Я не вижу, что не так, кнопка с этим идентификатором существует, она отлично компилируется, отлично работает на моем эмуляторе и на двух устройствах, однако я получаю около 100 сообщений об ошибках в консоли разработчика пользователи на этой версии.
Присмотревшись к onResume:
@Override
protected void onResume()
{
super.onResume();
SharedPreferences sp = PreferenceManager.getDefaultSharedPreferences(this);
boolean isButtonLabelsEnabled = sp.getBoolean("isButtonLabelsEnabled", false);
if (!isButtonLabelsEnabled)
{
((Button)findViewById(R.id.speakEnglishButton)).setText("");
((Button)findViewById(R.id.speakFrenchButton)).setText("");
((Button)findViewById(R.id.speakSpanishButton)).setText("");
((Button)findViewById(R.id.speakGermanButton)).setText("");
((Button)findViewById(R.id.speakItalianButton)).setText("");
}
else
{
((Button)findViewById(R.id.speakEnglishButton)).setText(getString(R.string.btnLblEnglish));
((Button)findViewById(R.id.speakFrenchButton)).setText(getString(R.string.btnLblFrench));
((Button)findViewById(R.id.speakSpanishButton)).setText(getString(R.string.btnLblSpanish));
((Button)findViewById(R.id.speakGermanButton)).setText(getString(R.string.btnLblGerman));
((Button)findViewById(R.id.speakItalianButton)).setText(getString(R.string.btnLblItalian));
}
}
По сути, все, что я делаю, это проверяю сохраненное предпочтение Boolean, и в зависимости от его значения я либо устанавливаю метки на кнопках, либо устанавливаю их в пустые.
Может кто-нибудь посоветовать, пожалуйста?
Спасибо