2 回答
TA贡献1789条经验 获得超10个赞
经过大约 16 个小时的头撞墙、尝试各种事情(逻辑和不逻辑的)并在每一步打印日志之后,我解决了这个问题。所以这就是解决方案(我仍然不明白为什么其他对象在没有这个的情况下可以完美工作,而这些对象需要它,但是嘿,只要它有效,我就会接受它)。
if (lqc == null) {
lqc = new ListenerQuestionChooser(this, this);
}
if (savedInstanceState != null) {
this.loadSettings(savedInstanceState);
}
if (finQuest == null) {
try {
finQuest = findViewById(R.id.btn_finansfer);
finQuest.setOnClickListener(lqc);
if (ListenerQuestionChooser.getCorrectAnswer() > 0) {
finQuest.setVisibility(View.VISIBLE);
} else {
finQuest.setVisibility(View.INVISIBLE);
}
} catch (Exception e) {
e.printStackTrace();
}
}
if (labelPoints == null) {
labelPoints = findViewById(R.id.total_score);
score = findViewById(R.id.text_points);
try {
ss = new StringSetter(this);
if (getLangFlag() == 0) {
labelPoints.setVisibility(View.INVISIBLE);
score.setVisibility(View.INVISIBLE);
} else {
score.setText(String.valueOf(getPoints()));
labelPoints.setText(ss.podesiPromenljivu(brPoena, getLanguage()));
}
} catch (Exception e) {
e.printStackTrace();
}
}
TA贡献2051条经验 获得超10个赞
这显然不是完整的来源,所以我们只能猜测。看起来您第一次创建此活动时 langFlag 设置为 0。从捆绑包中读取它后,它必须是一个不同的值,因为您进入了 else 块。我们不知道 getPoints 是什么 - 它只在您获得 NPE 的地方提到一次。因此,看起来 getPoints 为 null,但我们无法从您附加的代码中看出原因。
添加回答
举报