2012-12-26 4 views
0

내 앱에서 문이 단순한 문 이었지만 작동하지 않습니다. 내 회 전자에 ""을 선택한 경우 해당 날짜 만 편집 할 수 있습니다. 모든 요일을 편집 할 수 있기 때문에 작동하지 않습니다. 누군가 왜 저에게 말할 수 있습니까?If-Else 문이 Android 앱에서 작동하지 않습니다.

final String[] items={"Day","Date","Time","Location"}; 

    mSpin2.setOnItemSelectedListener(
     new OnItemSelectedListener() { 
      @Override 
      public void onItemSelected(
       AdapterView<?> parent2, View view, int pos, long id 
      ) { 
String strsel=items[pos]; 
if(strsel.equalsIgnoreCase("Day")) { 
    btnChangeDate.setFocusable(false); 
    btnChangeDate.setEnabled(false); 
    //btnChangeDate.setClickable(false); 
    btnChangeTime.setFocusable(false); 
    btnChangeTime.setEnabled(false); 
    //btnChangeTime.setClickable(false); 
    mLatitude.setFocusable(false); 
    mLatitude.setEnabled(false); 
    mLongitude.setFocusable(false); 
    mLongitude.setEnabled(false); 
} else { 
    mMonday.setFocusable(true); 
    mMonday.setEnabled(true); 
    mTuesday.setFocusable(true); 
    mTuesday.setEnabled(true); 
    mWednesday.setFocusable(true); 
    mWednesday.setEnabled(true); 
    mThursday.setFocusable(true); 
    mThursday.setEnabled(true); 
    mFriday.setFocusable(true); 
    mFriday.setEnabled(true); 
    mSaturday.setFocusable(true); 
    mSaturday.setEnabled(true); 
    mSunday.setFocusable(true); 
    mSunday.setEnabled(true); 
} 

String strsel2=items[pos]; 
if(strsel2.equalsIgnoreCase("Date")) { 
    mMonday.setFocusable(false); 
    mMonday.setEnabled(false); 
    mTuesday.setFocusable(false); 
    mTuesday.setEnabled(false); 
    mWednesday.setFocusable(false); 
    mWednesday.setEnabled(false); 
    mThursday.setFocusable(false); 
    mThursday.setEnabled(false); 
    mFriday.setFocusable(false); 
    mFriday.setEnabled(false); 
    mSaturday.setFocusable(false); 
    mSaturday.setEnabled(false); 
    mSunday.setFocusable(false); 
    mSunday.setEnabled(false); 
    btnChangeTime.setFocusable(false); 
    btnChangeTime.setEnabled(false); 
    //btnChangeTime.setClickable(false); 
    mLatitude.setFocusable(false); 
    mLatitude.setEnabled(false); 
    mLongitude.setFocusable(false); 
    mLongitude.setEnabled(false);       
} else { 
    btnChangeDate.setFocusable(true); 
    btnChangeDate.setEnabled(true); 
} 

String strsel3=items[pos]; 
if(strsel3.equalsIgnoreCase("Time")) { 
    mMonday.setFocusable(false); 
    mMonday.setEnabled(false); 
    mTuesday.setFocusable(false); 
    mTuesday.setEnabled(false); 
    mWednesday.setFocusable(false); 
    mWednesday.setEnabled(false); 
    mThursday.setFocusable(false); 
    mThursday.setEnabled(false); 
    mFriday.setFocusable(false); 
    mFriday.setEnabled(false); 
    mSaturday.setFocusable(false); 
    mSaturday.setEnabled(false); 
    mSunday.setFocusable(false); 
    mSunday.setEnabled(false); 
    btnChangeDate.setFocusable(false); 
    btnChangeDate.setEnabled(false); 
    //btnChangeDate.setClickable(false); 
    mLatitude.setFocusable(false); 
    mLatitude.setEnabled(false); 
    mLongitude.setFocusable(false); 
    mLongitude.setEnabled(false); 
} else { 
    btnChangeTime.setFocusable(true); 
    btnChangeTime.setEnabled(true); 
} 

String strsel4=items[pos]; 
if(strsel.equalsIgnoreCase("Location")) { 
    mMonday.setFocusable(false); 
    mMonday.setEnabled(false); 
    mTuesday.setFocusable(false); 
    mTuesday.setEnabled(false); 
    mWednesday.setFocusable(false); 
    mWednesday.setEnabled(false); 
    mThursday.setFocusable(false); 
    mThursday.setEnabled(false); 
    mFriday.setFocusable(false); 
    mFriday.setEnabled(false); 
    mSaturday.setFocusable(false); 
    mSaturday.setEnabled(false); 
    mSunday.setFocusable(false); 
    mSunday.setEnabled(false); 
    btnChangeDate.setFocusable(false); 
    btnChangeDate.setEnabled(false); 
    //btnChangeDate.setClickable(false); 
btnChangeTime.setFocusable(false); 
btnChangeTime.setEnabled(false); 
//btnChangeTime.setClickable(false); 
} else { 
    //mLatitude.setFocusable(true); 
    mLatitude.setEnabled(true); 
    //mLongitude.setFocusable(true); 
    mLongitude.setEnabled(true); 
} 
} 

@Override 
public void onNothingSelected(AdapterView<?> arg0) {} 
    } 
); 
+0

'항목'과 'pos'를 계산하는 방법을 보여줄 수 있습니까? – Ameen

+2

"if"문에 중단 점을 추가하고 (a) 실행 여부를 확인한 다음 (b) 생각한 값이 포함되어 있는지 확인하십시오. – 323go

+0

다음은 커뮤니티에서 도움이되는 답변을 받기 위해 권장되는 내용입니다. 소스 코드를 게시하는 것이 좋지만 질문에 대한 소스 코드 만 게시하는 것이 좋습니다. 귀하의 경우에, 당신은 각각의'if' 절 내에 많은 여분의 코드 행을 게시했습니다; 중괄호 안에있는 코드는 질문의 내용에 절대적으로 필요한 것은 아닙니다. 다음 번에는'if' 문 안의 여러 줄을 '// some code here'와 같은 한 줄로 대체하는 것이 좋습니다. – ecbrodie

답변

0

그래, 코드를 다시 살펴 봤습니다. 당신은 분명하지 않은 것을하고 있거나, 사용해야 할 케이스를 사용하고 있지 않습니다. 한 가지 방법 또는 다른 방법은 결과가 잘못되었다는 것을 알고 있습니다. 아래 패턴을 따라 청취자를 다시 작성하라고 제안합니다. 당신은 미세 조정 할 수 있습니다 그것은 당신의 실제 요구 사항에 따라 :

static final int dayIndex = 0; 
static final int dateIndex = 1; 
static final int timeIndex = 2; 
static final int locIndex = 3; 

public void onItemSelected(AdapterView<?> parent2, View view, int pos, long id) { 
    mMonday.setFocusable(pos == dayIndex); 
    mMonday.setEnabled(pos == dayIndex); 
    mTuesday.setFocusable(pos == dayIndex); 
    mTuesday.setEnabled(pos == dayIndex); 
    mWednesday.setFocusable(pos == dayIndex); 
    mWednesday.setEnabled(pos == dayIndex); 
    mThursday.setFocusable(pos == dayIndex); 
    mThursday.setEnabled(pos == dayIndex); 
    mFriday.setFocusable(pos == dayIndex); 
    mFriday.setEnabled(pos == dayIndex); 
    mSaturday.setFocusable(pos == dayIndex); 
    mSaturday.setEnabled(pos == dayIndex); 
    mSunday.setFocusable(pos == dayIndex); 
    mSunday.setEnabled(pos == dayIndex); 

    btnChangeDate.setFocusable(pos == dateIndex); 
    btnChangeDate.setEnabled(pos == dateIndex); 

    btnChangeTime.setFocusable(pos == timeIndex); 
    btnChangeTime.setEnabled(pos == timeIndex); 

    mLatitude.setEnabled(pos == locIndex); 
    mLongitude.setEnabled(pos == locIndex); 
} 

는 회 전자의 첫 번째 항목 (일)을 선택하면 위의 코드는 mMonday..mSunday을 가능하게 할 것이다, 그렇지 않으면 그것들을 해제합니다. 두 번째 항목 (날짜)을 선택하면 btnChangeDate를 사용할 수 있습니다 ... 등등. 의도를 올바르게 추측하고이 코드가 작동하면 if/then/else 구문에 대한 이해가 상당히 잘못되어 그걸 읽고 싶어.

+0

을 사용하여 전환 할 수 있습니다 .. !!! tqvm .. 정말 도와 줘서 고맙습니다. – user1858863

+0

언제나 기꺼이 도와 드리겠습니다. – 323go

+0

나는 아마도 너의 에멜을 통해 뭔가를 물어볼 수 있니? – user1858863

관련 문제