Java 如何增加int变量的值?
我想在用户点击按钮时增加int变量的值,但是现在这个值只增加一次 这就是我用来增加变量Java 如何增加int变量的值?,java,android,increment,Java,Android,Increment,我想在用户点击按钮时增加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
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
将其移动到类中,它将成为实例变量(AKA字段),并在类实例的生命周期内保持其最新值
阅读更多信息
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
应为类成员:
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);
}
将其声明为全局变量。使它对整个类可见(我假设,您没有一次又一次地声明对象)。此时,变量的范围仅限于函数,并且每次事件发生时,该变量的值都为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。您的代码应该如下所示:
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 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();
}
@覆盖
公共void onClick(视图v){
//TODO自动生成的方法存根
p+=1;
如果(pmoveint p=1;
作为类成员。不确定也不确定为什么接近者投票,它有一个足够明显的问题,有足够的代码来演示。@SteffenKreutz我用p来增加产品的数量,就像我在一个列表中有3个项目一样,我在第一个列表项目中留下了4个p,现在在第二个列表项目中,当我点击递增按钮时它直接显示5而不是2…所以这是我面临的主要问题所以,你甚至懒得在这里看到人们给出的答案,因为这不是你真正的问题?这个用户再次以“太复杂”打动了我们这个问题,等等,甚至不是他真正的问题。也许你们,亲爱的OP,开始解释你们想要什么,你们到目前为止尝试了什么。用简洁易懂的句子。(除此之外:在viewholder中设置一个值将在您滚动列表时产生有趣的结果…您有比增加值更多的问题!…只是说)我知道,但我用p来增加产品的数量,就像我在一个列表中有3个项目,我在第一个列表项目中留下了4个项目,现在在第二个列表项目中,当我点击递增按钮时,它直接显示5而不是2…所以这是我面临的主要问题。你必须存储每个项目的值。使用Map或ArrayList作为你的要求。我知道现在,我用p来增加产品的数量,就像我在一个列表中有3个项目一样,我在第一个列表项目中留下了4个项目,现在在第二个列表项目中,当我点击递增按钮时,它直接显示5而不是2…所以这是我面临的主要问题。你想添加数量(p
)到列表项类。如果不合适,则需要一个包含产品类和数量的新类。我知道,但我使用p来增加产品的数量,就像我在列表中有3个项目一样,我在第一个列表项中留下了4个p,现在在第二个列表项中,当我单击增量按钮时,它直接显示5而不是52…所以这是我面临的主要问题。你必须存储每个项目的计数器值。在这里使用map…键将是项目,值将是计数器我知道,但我使用p来增加产品的数量,就像我在一个列表中有3个项目一样,我在第一个列表项目中留下了4个p,现在在第二个列表项目中,当我点击inc时记住按钮,它直接显示5而不是2…所以这是我面临的主要问题我知道,但我使用p来增加产品数量,就像我在一个列表中有3个项目,我在第一个列表项目中留下了4个p,现在在第二个列表项目中,当我点击递增按钮时,它直接显示5而不是2…所以这是我的主要问题我面对