【问题标题】:android unable to click button after return返回后android无法单击按钮
【发布时间】:2012-04-25 00:45:39
【问题描述】:

我想创建一个帐户。如果单击保存按钮并且任何字段保持打开状态,则会显示一个 toast。如果填写了所有字段,则保存该帐户。我尝试使用一个遍历所有字段的 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();
            }
        }
    });
}

谢谢大家!

【问题讨论】:

    标签: android return onclicklistener


    【解决方案1】:

    你永远不会将你的标志重置为 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 .

    【讨论】:

    • 没有必要感到愚蠢......如果我每次错过明显的东西时都有镍...... :)
    猜你喜欢
    • 1970-01-01
    • 2016-12-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多