如何增加一个int变量的值?

How to increment the value of an int variable?

我想在用户点击按钮时增加 int 变量的值,但现在该值只增加一次。

这是我用来增加变量值的方法 p

@Override
public void onClick(View v) {
    int p = 1;

    if (p == 9) {
        Toast.makeText(context, "You have reached to maximum number", Toast.LENGTH_LONG).show();
    } else {
        p = p + 1;                      
        holder.textViewQuantity.setText("" + p);                        
    }
}

p在方法内部时,它是一个局部变量,并且是每个方法调用的唯一值,每次都初始化为1

将它移动到 class 它成为一个 实例变量 (AKA 字段)并在 [=24= 的生命周期内保持其最新值]实例。

阅读 this doc on the 4 types of variables 了解更多信息。

private int p = 1; //moved 

@Override
public void onClick(View v) {
    // TODO Auto-generated method stub

    if(p == 9) {
        Toast.makeText(context, "You have reached to maximum number", Toast.LENGTH_LONG).show();
        return ;
    }
    else {                              
        p = p+1;                        
        holder.textViewQuantity.setText(""+p);                      
    }

变量 p 应该是 class 成员:

int p = 1;  

@Override
public void onClick(View v) {
    // TODO Auto-generated method stub


    if(p == 9) {
        Toast.makeText(context, "You have reached to maximum number", Toast.LENGTH_LONG).show();
        return ;
    }
    else {                              
        p = p+1;                        
        holder.textViewQuantity.setText(""+p);                      
    }

声明为全局变量。使其对整个 class 可见(我假设,您不会一次又一次地声明该对象)。目前变量的范围仅限于函数,每次事件发生时该变量的值都为 1。

每当调用此事件时,您的值 p 都会被分配值 1。

class YourClass{

     int p;  /// creating p 
     YourClass(){
      p = 1;     /// initializing the value in constructor;
     } 


 // your onClick Event Code;
 @Override
 public void onClick(View v) {
 if(p == 9) {
 Toast.makeText(context, "You have reached to maximum number", Toast.LENGTH_LONG).show();
   return ;
 }
 else {                              
   p = p+1;                        
    holder.textViewQuantity.setText(""+p);                      
 }
 }  

将 int p = 1 移出函数,您将 p 重置为 1 onclick。

您的代码应该如下所示:

private int p = 1;

@Override
public void onClick(View v) {
// TODO Auto-generated method stub
    if(p == 9) {
        Toast.makeText(context, "You have reached to maximum number", Toast.LENGTH_LONG).show();
        return ;
    }
    else {                              
        p = p+1;                        
        holder.textViewQuantity.setText(""+p);                      
    }
}

int p 应该是 class 成员。

您可以将您的变量设为静态,然后它将计算给定 class:

的所有按钮点击次数
class Button {
   public static int p = 0;

   @Override
   public void onClick(View v) {
   // TODO Auto-generated method stub     

   if(p == 9) {
       Toast.makeText(context, "You have reached to maximum number", Toast.LENGTH_LONG).show();
       return ;
    }
    else {                              
       p = p+1;                        
       holder.textViewQuantity.setText(""+p);                      
    }
}

私人 int p = 0;

@Override
public void onClick(View v) {
// TODO Auto-generated method stub
     p+=1;
   if(p<9)
     holder.textViewQuantity.setText(String.valueof(p)); 
   else
    Toast.makeText(context, "You have reached to maximum number", Toast.LENGTH_LONG).show();
}