返回后android无法点击按钮

时间:2012-04-12 16:11:56

标签: android return onclicklistener

我有一个创建帐户的视图。如果单击保存按钮并且任何字段保持打开状态,则会显示一个Toast。如果填写了所有字段,则会保存该帐户。我尝试使用onClickListener完成此操作,该onClickListener遍历所有字段。如果没有填写字段并且填充了alle字段时它完美地工作,那么它非常有效。但是当字段未填充时,我在那里键入内容,尝试再次保存并且按钮不执行任何操作。

我认为这与回归有关,但我不知道该怎么办。如果没有返回,我会为每个未填写的字段祝酒。

以下是相关代码:

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

谢谢你们!

1 个答案:

答案 0 :(得分: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