Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/unit-testing/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
无法在Java中添加整数值_Java_Android_Variables_Integer - Fatal编程技术网

无法在Java中添加整数值

无法在Java中添加整数值,java,android,variables,integer,Java,Android,Variables,Integer,我想要的是,默认情况下C是0,但当用户添加2时,它应该显示2,当用户添加4时,它应该是6,但它显示4 任何帮助都将不胜感激 public void addCash(View view) { //Intent intent = new Intent(this, Main.class); EditText val1 = (EditText) findViewById(R.id.num); int b = 0; int a = 0; int c = 0

我想要的是,默认情况下C是0,但当用户添加2时,它应该显示2,当用户添加4时,它应该是6,但它显示4 任何帮助都将不胜感激

    public void addCash(View view) {
    //Intent intent = new Intent(this, Main.class);

    EditText val1 = (EditText) findViewById(R.id.num);
    int b = 0;
    int a = 0;
    int c = 0;
    int d = 0;

    a = Integer.parseInt(val1.getText().toString());

     if (c == 0) {
         c = a + b;
     }
     else {
         c = c + a;
     }

    TextView result = (TextView) findViewById(R.id.outPut);
    result.setText(""+c);

    //startActivity(intent);
}

将c初始化为活动的全局成员变量。因为此实例将在整个活动中保留,而如果每次调用方法时都将其初始化为局部变量,则会创建新的变量实例

这将作为活动中的全局实例

private int c = 0;
当调用addcash方法时,这些a、b、d将被反复初始化

public void addCash(View view) {
//Intent intent = new Intent(this, Main.class);

EditText val1 = (EditText) findViewById(R.id.num);

int b = 0;
int a = 0;
int d = 0;

a = Integer.parseInt(val1.getText().toString());

 if (c == 0) {
     c = a + b;
 }
 else {
     c = c + a;
 }

TextView result = (TextView) findViewById(R.id.outPut);
result.setText(""+c);
同时,将下面的代码行替换为c=c+a,因为根据您的代码,b始终为零

if (c == 0) 
{
   c = a + b;
}
有关更多信息,请查看此链接

http://www.cafeaulait.org/course/week3/11.html

变量c是该函数的局部变量,每次调用该函数时,它都会初始化c=0

所以每次只有在条件运行的情况下

否则条件将永远不会执行

您可以将c声明为全局….

使用textview的值初始化变量c,如下所示:

TextView result = (TextView) findViewById(R.id.outPut);
int c = Integer.parseInt(val1.getText().toString());

<>编辑:如果默认的文本视图没有设置为0,那么你应该考虑做一个额外的检查。

,正如已经说明的其他答案,你使用的是局部变量,在每个方法调用中都初始化了。
class SomeActivity {

    private int c = 3; // Instance variable being initialized to 3. When you
                       // leave out the "= 3" part, then it is initialized
                       // to 0.

    public void addCash(View v) {
        // Now if you add something to c, it will persist between multiple
        // method calls
        EditText inputField = (EditText) findViewById(R.id.num);
        EditText outputField = (TextView) findViewById(R.id.outPut);
        c += Integer.parseInt(inputField.getText().toString());
        outputField.setText(String.valueOf(c));
    }
}

您总是将c初始化为0。您需要c是对象中的实例变量,而不是方法中的局部变量。如果它是方法中的局部变量,则不能在方法调用之间保留该值。addCash一完成,这个值就消失了。发布完整的类。同样,如果b不能是0以外的任何值,那么c=a+b有什么意义?你可以说c=a。但是因为你只在c=0时才这么做,所以说c=a和c=c+a是完全一样的。换句话说,整个if语句是多余的。还有,d的作用是什么?如何使C成为一个实例变量如何将C声明为全局int?对于全局声明,您必须在类启动时声明C。。例如:类测试{private int c;测试{c=0;}fun{//use c}}如何将其设置为默认值0?@MusaUsman在活动的onCreate方法中添加以下内容:TextView result=TextView findviewbydr.id.outPut;result.setText0;