2012-04-12 6 views
1

계정을 만들 수있는 권한이 있습니다. 저장 버튼을 클릭하고 필드를 열어두면 축배가 표시됩니다. 모든 필드가 채워지면 계정이 저장됩니다. 모든 필드를 반복하는 onClickListener를 사용하여이 작업을 수행하려고했습니다. 필드가 채워지지 않으면 필드가 채워지면 완벽하게 작동하지만 필드가 채워지지 않으면 거기에 내용을 입력하고 다시 저장하려고하면 버튼이 아무 것도하지 않습니다.안드로이드가 돌아온 후 버튼을 클릭 할 수 없습니다.

나는 그것이 반환과 관련이 있다고 생각하지만, 무엇을 해야할지 모르겠다. 반환이되지 않을 것, 내가 채워되지 않은 각 필드에 대한 축배를 얻을 것

가 여기에 관련 코드입니다 :.

private void registerButtonListeners() { 
    mCRUDAccountButton.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      for (int i = 0; i < mEditTexts.length; i++) {  
       if(mEditTexts[i].getText().length() == 0){ 
        CommonCode.showToast(mNoTextTitles[i], mContext, mViewGroup); 
        mEmptyField = 1; 
        return; 
       } 
      }; 
      if (mEmptyField == 0){ 
       saveState(); 
      } 
     } 
    }); 
} 

감사들!

답변

2

플래그를 다시 0으로 재설정하지 않으셔도됩니다.

그래서 ...

@Override 
     public void onClick(View v) { 
      mEmptyField = 0;//RIGHT HERE (give them the benefit of the doubt) 
      for (int i = 0; i < mEditTexts.length; i++) {  
       if(mEditTexts[i].getText().length() == 0){ 
        CommonCode.showToast(mNoTextTitles[i], mContext, mViewGroup); 
        mEmptyField = 1; //You were too optimistic, they failed. 
        return; 
       } 
      }; 
      if (mEmptyField == 0){ 
       saveState(); 
      } 
     } 
    }); 

지금, 처음으로이 테스트를하고있는 때마다. 그렇지 않으면, 당신은 통과하고 그 플래그를 1로 설정하고 다음 번 루프가 일치하는 것을 찾지 못하더라도 mPentyField == 0 테스트에 도달하면 이전에 돌아가서 1로 설정하면 실패합니다 .

+0

당연히 그렇습니다. 지금 당장 바보 같아요. 고마워! –

+0

바보 같은 생각을 할 필요가 없습니다. 매번 니켈을 먹으면 분명히 뭔가 놓쳤습니다. :) –

관련 문제