2012-04-12 9 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

もちろん、私は今やとても気分が悪いですね:pありがとう! –

+0

ダムを感じる必要はありません...私はいつも何かを忘れたニッケルを持っていたら... –

関連する問題