안드로이드 개발 질문/답변
(글 수 45,052)
DB를 이용하여 DB의 ID값을 이용해 DB의 onofff라는 데이터 값을 이용해
onoff에 저장되어 있는 String 문자를 미리 정해 놓은 on과 off라는 String으로 비교하고자 합니다.
if문으로 구현해봤는데 조건이 맞는거 같은데 안되는군요 .
아래 소스입니다.
String getOnoff = DBHelper.getColumn(posi + 1).getString( DBCursor.getColumnIndex("onoff")); if (getOnoff == "on") { DBHelper.updateColumn(posi + 1, "off"); DBArray.clear(); doWhileCursorToArray(); DBAdapter.setArrayList(DBArray); DBAdapter.notifyDataSetChanged(); Toast.makeText(Alarm_main.this, "1 " + DBHelper.getColumn(posi + 1).getString( DBCursor.getColumnIndex("onoff")), Toast.LENGTH_SHORT).show(); } else if (getOnoff == "off") { DBHelper.updateColumn(posi + 1, "on"); DBArray.clear(); doWhileCursorToArray(); DBAdapter.setArrayList(DBArray); DBAdapter.notifyDataSetChanged(); Toast.makeText(Alarm_main.this, "2 " + DBHelper.getColumn(posi + 1).getString( DBCursor.getColumnIndex("onoff")), Toast.LENGTH_SHORT).show(); } else if (getOnoff != "on") { DBHelper.updateColumn(posi + 1, "on"); DBArray.clear(); doWhileCursorToArray(); DBAdapter.setArrayList(DBArray); DBAdapter.notifyDataSetChanged(); Toast.makeText(Alarm_main.this, "3 " + DBHelper.getColumn(posi + 1).getString( DBCursor.getColumnIndex("onoff")), Toast.LENGTH_SHORT).show(); } else if (getOnoff != "off") { DBHelper.updateColumn(posi + 1, "off"); DBArray.clear(); doWhileCursorToArray(); DBAdapter.setArrayList(DBArray); DBAdapter.notifyDataSetChanged(); Toast.makeText(Alarm_main.this, "4 " + DBHelper.getColumn(posi + 1).getString( DBCursor.getColumnIndex("onoff")), Toast.LENGTH_SHORT).show(); } else { Toast.makeText(Alarm_main.this, "머야", Toast.LENGTH_SHORT) .show(); }
조건을 간략하면
on == on 은 off
off == off 는 on
사실 if문이 두개면 충분하지만 !=을 넣어서 확인해보니 on도 아니고 off도 아니라고 토스트가 뜨는군요 ..
원인이 뭔지 도저히 모르겠습니다..
멘붕입니다 ... if문 틀린건지 if문만 2시간 봤습니다. 왜 그럴까요 ... 조언부탁드립니다.
- 추가 글 -
참 소스와 앱상에서 프로그램의 에러는 없습니다.
아래처럼 변경하면 됩니다.
if
("on".equals(getOnoff)
) {