부울을 SharedPreferences
에서 검색하려고하는데 부울은 항상 거짓입니다. 코드 :공유 환경 설정에서 부울 값을 가져올 수 없습니다. Android
SharedPreferences prefs;
boolean crosshairIsShown;
...
prefs = getSharedPreferences("Weapon1", MODE_PRIVATE);
crosshairIsShown = prefs.getBoolean("crosshairIsShown", false);
crosshair();
..
crosshair.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (crosshairIsShown == false) {
crosshairIsShown = true;
crosshair1.setVisibility(View.VISIBLE);
crosshair2.setVisibility(View.VISIBLE);
crosshair.setImageResource(R.drawable.crosshair_enabled);
SharedPreferences.Editor editor = prefs.edit();
editor.putBoolean("crosshairIsShown", true);
editor.commit();
} else {
crosshairIsShown = false;
crosshair1.setVisibility(View.INVISIBLE);
crosshair2.setVisibility(View.INVISIBLE);
crosshair.setImageResource(R.drawable.crosshair_disabled);
SharedPreferences.Editor editor = prefs.edit();
editor.putBoolean("crosshairIsShown", false);
editor.commit();
}
}
});
...
private void crosshair() {
if (crosshairIsShown == false) {
crosshair1.setVisibility(View.VISIBLE);
crosshair2.setVisibility(View.VISIBLE);
crosshair.setImageResource(R.drawable.crosshair_enabled);
} else {
crosshair1.setVisibility(View.INVISIBLE);
crosshair2.setVisibility(View.INVISIBLE);
crosshair.setImageResource(R.drawable.crosshair_disabled);
}
}
왜 이런 일이 발생합니까? 나는 무엇을 잘못 했는가? 방법 아래
이유가 있는지 모르겠지만 십자선 (더 나은 이름 : setCrosshair)과 onClick의 논리가 바뀌 었는지 알 수 없습니다. 또한 모든 것을 다시 코딩하는 대신 onClick에서 setCrosshair를 호출하는 것이 좋습니다. – greenapps