Android 为什么可以';我不能把这个整数加1吗?

Android 为什么可以';我不能把这个整数加1吗?,android,int,add,Android,Int,Add,这有点令人沮丧,因为我不知道为什么它没有添加。我有一个公共整数(public int intVar;),还有一个我想增加1的方法。我试过intVar++,intVar+=1和intVar=intVar+1 那么为什么我不能把这个整数增加1呢 public class activityMain extends Activity { public int intVar; @Override protected void onCreate(Bundle savedInstan

这有点令人沮丧,因为我不知道为什么它没有添加。我有一个公共整数(public int intVar;),还有一个我想增加1的方法。我试过intVar++,intVar+=1和intVar=intVar+1

那么为什么我不能把这个整数增加1呢

public class activityMain extends Activity {
    public int intVar;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        // TODO Auto-generated method stub
        super.onCreate(savedInstanceState);
        setContentView(R.layout.cdtracks);
        intVar = 1;
    }

    public void myMethod() {
        intVar = intVar+1;
        Log.d("MYTAG", "intVar="+intVar)
        //everytime I call the method, it will always say 1. 
    }
}

您是否确保实际执行了显示的onCreate?如果调用方法两次会发生什么情况?

如果尚未这样做,请向OnCreate方法添加日志语句。这可能会告诉你一些事情。您可能会发现intVar变量应该存储在savedInstanceState包中,以使其持久化。这是在活动的onSaveInstanceState方法中完成的。

intVar在其他代码中是否受影响?你能展示一个实际调用myMethod()的实例吗?它看起来还可以(除了最后一行中缺少的
),所以我想说“你确定这是实际的代码吗?也许有一些东西你没有展示给我们,因为你认为它不重要?”@Maximus我的活动很长。。。但按下按钮时会调用myMethod()。我到处都有logcat,所以我知道它调用的方法很好,应用程序工作正常,只是它没有添加那个整数@MByD这不是实际的代码,因为就像我回答Maximus一样,它非常长。我有一个Logcat向我报告intVar,它总是说1,而不是2,3,4…确保你没有在
myMethod
中声明
intVar
。另外,它是在同一个活动实例上调用的,还是在不同的时间调用的?@MByd,它不是在myMethod中声明的,而是在onCreate中声明的。也许我误解了你…当你说申报。。。你的意思是像公共intVal?如果是这种情况,则在方法之外声明它。执行onCreate。我甚至在方法中初始化了整数。不过我会试着运行两次这个方法,这是个好主意…这很有效…我把数学加入到它自己的方法中,只是在这个方法中运行了两次公式…它有效。为什么它在运行两次时会起作用?@Anthony Honciano:你在哪里调用MyMethod()。如果它在构造函数中,那么它将在onCreate()之前被调用,因此在您第一次递增它之前,intVar将为零,这意味着第一次MyMethod调用的结果将为“1”,因此您将看到结果。试着说“public int intVar=1”,我打赌你会得到正确的结果。