为什么我的分数计数器总是重置?

时间:2013-04-18 01:45:18

标签: android

我正在尝试制作游戏,似乎无法让分数计数器工作。问题是每次单击按钮时,整数的值都会回到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,但我不知道如何修复它。我是开发新手,所以一些示例代码将不胜感激。感谢。

3 个答案:

答案 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)