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

ImageView의 이미지 변경 관련 질문입니다!

0 추천

만약 고객이 관심 증상 및 질병으로 '식욕부진'을 선택했다면

해당 이미지를 heart로 변경하는 액티비티인데요!

public class Recommend extends Activity {

    TextView mname, mdisease;
    TextView test;
    ImageView imgtest;
    String sdisease;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_recommend);

        mname = (TextView)findViewById(R.id.tvname);
        mdisease = (TextView)findViewById(R.id.tvdisease);
        test = (TextView)findViewById(R.id.txttest);
        imgtest = (ImageView)findViewById(R.id.img);

        DBAdapter adb = new DBAdapter(this, DBAdapter.SQL_CREATE_MEMBER, "person");
        adb.open();

        String columns[] = {"name", "disease"};
        Cursor c = adb.selectTable(columns, null, null, null, null, null);

        if(c.moveToFirst()){
            do{
                mname.setText(c.getString(c.getColumnIndex("name")));
                mdisease.setText(c.getString(c.getColumnIndex("disease")));
                // disease 출력 테스트 용
                sdisease = mdisease.getText().toString();
                test.setText(sdisease);
            } while (c.moveToNext());
        }

        // disease가 '식욕부진'일 경우 이미지 변경
        if(sdisease == "식욕부진")
        {
            imgtest.setImageResource(R.drawable.heart);
        }

        adb.close();
    }
}

(mname과 mdisease에는 DB에 저장된 고객의 이름과 질병이 출력되는 것입니다 - 제대로 출력 됩니다!)

병명을 못 받아오나 싶어 sdisease를 만들어 출력해보니 식욕부진으로 잘 출력되는데

이미지가 heart로 변경되지 않아서 질문 드립니다ㅠㅠㅠㅠㅠㅠㅠ

if(sdisease != 식욕부진) 이라고 바꿔야만 이미지가 변경됩니다..

 

해결 방법 알려주시면 정말 정말 감사하겠습니다! 

 

 

 

샐리 (440 포인트) 님이 2016년 10월 17일 질문

1개의 답변

0 추천
 
채택된 답변
일단 문자 비교는 equals()로 하시는 겁니다.

== 는 주소값을 비교하는것 이고 equals는 값자체를 비교 하는 것입니다.

왜 문자열은 주소값을 비교하면 안돼는지는 설명이 길어지므로 추후 자바 책을 정독해보시면 잘 나옵니다.
ThisPlus (46,920 포인트) 님이 2016년 10월 17일 답변
샐리님이 2016년 10월 17일 채택됨
덕분에 해결됐습니다 감사합니다! :)
...