안드로이드 개발 질문/답변
(글 수 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)) {