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시간 봤습니다. 왜 그럴까요 ...  조언부탁드립니다.

 

- 추가 글 -

참 소스와 앱상에서 프로그램의 에러는 없습니다.