我正在尝试制作游戏,似乎无法让分数计数器工作。问题是每次单击按钮时,整数的值都会回到0。
public void button(View view){
Integer counter = Integer.valueOf(0);
counter = counter++;
final TextView score = (TextView) findViewById(R.id.score);
score.setText("Score: " + counter);
}
我很明白为什么每次得分都会回到0,但我不知道如何修复它。我是开发新手,所以一些示例代码将不胜感激。感谢。
答案 0 :(得分:1)
以下是http://developer.android.com/reference/android/widget/Button.html
中的一些修改后的代码public class MyActivity extends Activity {
int counter = 0; // Counter variable.
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.content_layout_id);
final Button button = (Button) findViewById(R.id.button_id);
button.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
counter = counter++;
final TextView score = (TextView) findViewById(R.id.score);
score.setText("Score: " + counter);
}
});
}
}
这应该做你想要的。希望它有所帮助!
答案 1 :(得分:0)
因为你正在重置它。
Integer counter = Integer.valueOf(0); // here
counter = counter++;
改为使用全局变量。
public class MyActivity extends Activity{
int counter;
protected void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(...);
counter = 0;
}
public void button(View view){
counter = counter++;
final TextView score = (TextView) findViewById(R.id.score);
score.setText("Score: " + counter);
}
}
答案 2 :(得分:0)
您需要做的是在程序的更持久的部分初始化计数器,甚至作为全局变量。每次调用函数时,都要初始化新计数器。
为了解决这个问题,你应该研究变量范围。 (来自Google搜索“Java变量范围”的示例链接。(1))