我正在学习制作Android应用,并且希望创建一个简单的应用来计算点击按钮的次数,但是我运行应用时遇到了问题。
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//Connects the button by ID and reference to the design button
Button andrewsButton = (Button) findViewById(R.id.andrewsButton);
//When the button is clicked it will display the amount of times the button is clicked
andrewsButton.setOnClickListener(
new Button.OnClickListener() {
public void onClick(View v) {
TextView andrewsText = (TextView) findViewById(R.id.andrewsText);
for(int i = 0;i < 20;++i) {
String s = Integer.toString(i);
andrewsText.setText(s);
}
}
}
);
问题是我运行它并点击按钮一旦它自动转到19而不是从0开始。
答案 0 :(得分:3)
每次单击按钮时都会调用onClick方法一次。你有一个for循环计数到19,所以每次点击按钮你都会用数字1-19再次快速设置文本,直到达到19。
如果你想保留一个单独的计数器,你可以创建一个全局变量,然后在onClick方法中将它递增1。这应该提供所需的行为:
private int count = 0;
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//Connects the button by ID and reference to the design button
Button andrewsButton = (Button) findViewById(R.id.andrewsButton);
//When the button is clicked it will display the amount of times the button is clicked
andrewsButton.setOnClickListener(
new Button.OnClickListener() {
public void onClick(View v) {
TextView andrewsText = (TextView) findViewById(R.id.andrewsText);
count++;
andrewsText.setText(String.valueOf(count));
}
}
);