Java Android递增计数器不会重置?

Java Android递增计数器不会重置?,java,android,increment,Java,Android,Increment,我正在尝试为GAA比赛(爱尔兰足球)创建一个分数跟踪器 我已经让它工作,但每次我运行应用程序时,它不会将计数器重置回0,而是继续递增 以下是我的MainActivity java文件中的代码: public class MainActivity extends ActionBarActivity { public static int homeGoalsCounter = 0; public static int homePointsCounter = 0; public static i

我正在尝试为GAA比赛(爱尔兰足球)创建一个分数跟踪器

我已经让它工作,但每次我运行应用程序时,它不会将计数器重置回0,而是继续递增

以下是我的MainActivity java文件中的代码:

public class MainActivity extends ActionBarActivity {

public static int homeGoalsCounter = 0;
public  static int homePointsCounter = 0;
public static  int awayGoalsCounter = 0;
public static int awayPointsCounter = 0;

Button homeGoalButton;
Button homePointButton;
Button awayGoalButton;
Button awayPointButton;
TextView homeGoalsTextView;
TextView homePointsTextView;
TextView awayGoalsTextView;
TextView awayPointsTextView;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    homeGoalButton = (Button)(findViewById(R.id.homeGoal));
    homePointButton = (Button)(findViewById(R.id.homePoint));
    awayGoalButton = (Button)(findViewById(R.id.awayGoal));
    awayPointButton = (Button)(findViewById(R.id.awayPoint));
    homeGoalsTextView = (TextView)(findViewById(R.id.homeGoals));
    homePointsTextView = (TextView)(findViewById(R.id.homePoints));
    awayGoalsTextView = (TextView)(findViewById(R.id.awayGoals));
    awayPointsTextView = (TextView)(findViewById(R.id.awayPoints));

    homeGoalButton.setOnClickListener(new View.OnClickListener() {
        public void onClick(View view){
            homeGoalsCounter++;
            homeGoalsTextView.setText(Integer.toString(homeGoalsCounter));
        }

    });

    homePointButton.setOnClickListener(new View.OnClickListener(){
        public void onClick(View view){
            homePointsCounter++;
            homePointsTextView.setText(Integer.toString(homePointsCounter));
        }
    });

    awayGoalButton.setOnClickListener(new View.OnClickListener(){
        public void onClick(View view) {
            awayGoalsCounter++;
            awayGoalsTextView.setText(Integer.toString(awayGoalsCounter));
        }
    });

    awayPointButton.setOnClickListener(new View.OnClickListener(){
        public void onClick(View view){
            awayPointsCounter++;
            awayPointsTextView.setText(Integer.toString(awayPointsCounter));
        }
    });
}

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    // Inflate the menu; this adds items to the action bar if it is present.
    getMenuInflater().inflate(R.menu.menu_main, menu);
    return true;
}

@Override
public boolean onOptionsItemSelected(MenuItem item) {
    // Handle action bar item clicks here. The action bar will
    // automatically handle clicks on the Home/Up button, so long
    // as you specify a parent activity in AndroidManifest.xml.
    int id = item.getItemId();

    //noinspection SimplifiableIfStatement
    if (id == R.id.action_settings) {
        return true;
    }

    return super.onOptionsItemSelected(item);
}

}

您的计数器被声明为
static
,因此值由MainActivity的每个实例共享。基本上,每次创建MainActivity时,它都会继承上一个实例的值。

将初始化放入
onCreate
方法中

 public class MainActivity extends ActionBarActivity {

public static int homeGoalsCounter ;
public static int homePointsCounter;
public static int awayGoalsCounter;
public static int awayPointsCounter;


protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    homeGoalsCounter = 0;
    homePointsCounter = 0;
    awayGoalsCounter = 0;
    awayPointsCounter = 0;

    }
}

我的理解是,如果它们不是静态的,它们不会增加,当我点击一个按钮时,它只会添加一个,然后停止?我想随着进球和得分的增加而不断增加分数。将字段标记为
静态
与更改它们无关。您可以增加
OnClickListeners
中的非静态字段。我想你把
static
关键字与
final
混淆了,这基本上意味着该字段不能重新分配。如果这有帮助,请接受答案以关闭问题,这将在你旋转屏幕时重置计数器。@Secator。问题中没有提到屏幕旋转,我认为在99%的情况下,当你旋转手机时,人们并不期望他们输入的所有内容都消失。它们是静态的。他们将一直呆到应用程序完全停止。