마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

sharedPreferences 데이터 활용 질문있습니다.

0 추천
String 타입 값을 MainActivity에서 SubActivity로 sharedPreferences를 통해 가져왔습니다.

SubActivityd에서 위 데이터를 토대로 if문을 만들려고 하는데 반응이 없네요...

(JAVA)

 

Ex)

String result = sharedPreferences.getString("result", "");

textview.setText(result);

 

if (result.equls("과제충입니다.")){     //해본거 1

textview2.setText("런지, 스쿼트 등")

} else if (textview.getText().toString == "과제중입니다."){   //해본거 2

textview2.setText("런지, 스쿼트 등")

}

 

도와주세요...
유난 (120 포인트) 님이 2022년 11월 7일 질문

2개의 답변

0 추천
String 비교는 equals를 사용하셔야 하구요. String result 에 어떤 값이 넘어오는지 브레이크 포인트를 걸어서 디버깅 해보시면 금방 원인을 알 수 있을 것 같습니다.

그리고 한가지 팁을 드리자면 "과제중입니다.".equals(result)로 비교하시면 혹시나 있을 NullPointerException을 방지할 수 있습니다. 그리고 "과제중입니다"와 같은 String은 상수에 집어넣고 코드를 읽기에도 좋고 추후 코드관리에도 유리합니다.
spark (227,530 포인트) 님이 2022년 11월 7일 답변
0 추천

코드는 해본거 1이 맞으며,

값이 안 나오는건 타이밍 이슈일 가능성이 높을 듯 합니다.

sharedPreferences 에 값을  commit 혹은 apply 가 true가 반환되어야, 값이 들어가는데,

값을 읽는 시점에서는 그 값이 설정 안되어 기본값인  "" 가 반환되었을 듯 합니다.

익명사용자 님이 2022년 11월 7일 답변
...