我试图制作一个简单的应用,其中单击tapb按钮可将notaps的变量值递增,而reset按钮会将其设置为0.当我单击tapb时,其值将递增&.单击重置会重置它,但是当我再次单击tabp时,它会从以前的值开始递增.
例如:
init value of notaps = 0;
我单击tabp 3次,notaps值= 3
我单击重置,notaps值= 0
我单击tabp 3次,notaps值= 4
Button tapb = (Button)findViewById(R.id.tapb);
Button reset = (Button)findViewById(R.id.reset);
tapb.setOnClickListener(
new Button.OnClickListener(){
int notaps = 0;
@Override
public void onClick(View v) {
TextView taps = (TextView)findViewById(R.id.taps);
notaps++;
taps.setText(String.valueOf(notaps));
}
}
);
reset.setOnClickListener(
new Button.OnClickListener() {
@Override
public void onClick(View v) {
TextView taps = (TextView) findViewById(R.id.taps);
int notaps=0;
taps.setText(String.valueOf(notaps));
}
}
);
解决方法:
首先,您有两个名为notaps的int实例,它们彼此无关.您的重置按钮未设置正确的notaps变量.
这是一个应该起作用的代码段.
private int notaps;
Button tapb = (Button)findViewById(R.id.tapb);
Button reset = (Button)findViewById(R.id.reset);
TextView taps = (TextView)findViewById(R.id.taps);
tapb.setOnClickListener(
new Button.OnClickListener(){
@Override
public void onClick(View v) {
notaps++;
taps.setText(String.valueOf(notaps));
}
}
);
reset.setOnClickListener(
new Button.OnClickListener() {
@Override
public void onClick(View v) {
notaps = 0;
taps.setText(String.valueOf(notaps));
}
}
);