无法在Java中添加整数值
我想要的是,默认情况下C是0,但当用户添加2时,它应该显示2,当用户添加4时,它应该是6,但它显示4 任何帮助都将不胜感激无法在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
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;