接上文:
再换种思路:
final int i = ((Integer)paramView.getTag()).intValue();
final int j = ((Integer)((HashMap)Util.mEggsInfo.get(i)).get(“ePrice”)).intValue();
final int k = PrefDAO.getMoney(this.this$0);
if (k - j < 0) {
Toast.makeText(this.this$0, “粉丝数不足”, 0).show();
}
k是 当前拥有的粉丝数,j是购买的这种所需的粉丝数;
那么我们可以 通过修改 j的值 来达到目的
比如j原来是需1500,现在我们改成1;
这个在java代码里 还不太好看, 直接看 smali代码吧
invoke-static {v4}, Lcom/app/idol/db/PrefDAO;->getMoney(Landroid/content/Context;)I
move-result v1
.line 180
.local v1, "money":I
const/4 v3, 0x1 //存入4位常量(0x1)到 v3
const/16 v1, 0x7580 //存入16位常量(0x7580 )到 v1
sub-int v4, v1, v3 //这里的 v1是当前拥有的粉丝数,v3是购买的这种所需的粉丝数;
直接在这行代码上面 对 v3进行赋值 添加代码 const/4 v3, 0x1 这样 每次减就是减1了; 同样 可以通过修改 v1值 在上面添加 const/16 v1, 0x7580 都是可以的
if-gez v4, :cond_0
.line 181
iget-object v4, p0, Lcom/app/idol/activities/TamagoyaActivity$2;->this$0:Lcom/app/idol/activities/TamagoyaActivity;
.line 182
const-string v5, "\u7c89\u4e1d\u6570\u4e0d\u8db3\u3002"