老师,您的代码有BUG!!!
找到文字之后再扣掉金币,如果用户金币不够呢!!!
这样是不能够扣金币的啊!!!所以老师您的代码有BUG啊!!1
当用户的金币不足的时候,按照您的代码,应该是先会提示一个文字在答案框里面,然后提示一下金币不足。
显然啊,应该金币不足的时候,不应该立即提示答案,而应先提示金币不足。
为此我写了一个解决方案。
我写了一个判断用户当前是否可以减少金币的方法,该方法如下:
/** * 判断用户当前是否可以减少金币 * * @return 可以:返回true,否则返回false */ private boolean isAbleDelCoins(int data) { // 判断当前总的金币数量是否可被减少 if (mCurrentCoins + data >= 0) { return true; } else { return false; } }
然后我们在tipAnswer里面开始的时候调用,
/** * 提示文字,自动选择一个答案 */ private void tipAnswer() { if(!isAbleDelCoins(-getTipCoins())){ //金币数量不够,提示错误并且返回 Toast.makeText(MainActivity.this, "您的金币不够呀,请充值~", Toast.LENGTH_LONG).show(); } boolean tipWord = false; for (int i = 0; i < mBtnSelectWords.size(); ++i) { if (mBtnSelectWords.get(i).mWordString.length() == 0) { onWordButtonClick(findIsAnswerWord(i)); // 找到一个答案的文字,并且根据当前答案框的文字填入 tipWord = true; // 减少金币数量 if (!handleCoins(-getTipCoins())) { // 金币数量不够,显示对话框,提示用户金币不够 return; } break; } } // 没有找到可以填充的答案 if (!tipWord) { // 闪烁文字来提示用户 sparkTheWords(); } }
这样整个逻辑就是实现了,嘿嘿,看看效果,当我再点击提示文字的时候且金币不够的话:
小伙伴们如果有更好的解决方案,欢迎交流呀~