老师,您的代码有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();
}
}这样整个逻辑就是实现了,嘿嘿,看看效果,当我再点击提示文字的时候且金币不够的话:

小伙伴们如果有更好的解决方案,欢迎交流呀~