当我尝试按下按钮时,它只能工作一次......
public class MainActivity extends AppCompatActivity {
TextView txt;
Button btn;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
txt = (TextView) findViewById(R.id.mytext);
btn = (Button) findViewById(R.id.button1);
btn.setOnClickListener(new View.OnClickListener(){
@Override
public void onClick(View v){
txt.setText("" +1);
}
} );
我该如何解决?非常感谢
答案 0 :(得分:2)
我想你要做的是:
public class MainActivity extends AppCompatActivity {
TextView txt;
Button btn;
private int mCounter = 0;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
txt = (TextView) findViewById(R.id.mytext);
btn = (Button) findViewById(R.id.button1);
btn.setOnClickListener(new View.OnClickListener(){
@Override
public void onClick(View v){
txt.setText("" + mcounter++);
}
} );
现在,当您单击按钮时,文本将首次为0,然后在每次单击按钮时进行计数。您的代码的问题是,它不是算术运算,因此每次调用onclick方法,但每次都有相同的文本
答案 1 :(得分:1)
它运作正常。每次点击都会设置相同的文字,因此您无法看到任何更改。
答案 2 :(得分:0)
您的代码似乎没问题。
您可以添加调试log
或显示toast
消息,以了解button
点击status
。
试试这个:
btn.setOnClickListener(new View.OnClickListener(){
@Override
public void onClick(View v){
txt.setText("" + 1);
// Log
Log.d("TEST", "Button clicked!");
// Toast
Toast.makeText(getApplicationContext(), "Button clicked!", Toast.LENGTH_SHORT).show();
}
} );
如果您想在TextView
上显示增量值。试试这个:
// Initial value
final int count = 1;
btn.setOnClickListener(new View.OnClickListener(){
@Override
public void onClick(View v){
txt.setText(String.valueOf(count));
// Increment
count++
}
} );
希望这会有所帮助。