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();
            }
        }
    });
}

みんなありがとう!

4

1 に答える 1

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に設定します。次回、ループで一致するものが見つからなくても、if mPentyField == 0テストに到達すると失敗し、前のラウンドで1に設定します。 。

于 2012-04-12T16:17:57.403 に答える