2

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

4

3 回答 3

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);
         }
     });
 }

}

这应该做你想要的。希望能帮助到你!

于 2013-04-18T01:55:30.217 回答
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);
}

}
于 2013-04-18T01:52:54.143 回答
0

您需要做的是在程序中更持久的部分或什至将计数器初始化为全局变量。每次调用函数时,都会初始化一个计数器。

为了解决这个问题,你应该研究变量范围。(来自 Google 搜索“Java 变量范围”的示例链接。(1)

于 2013-04-18T01:54:39.447 回答