Android Studio OnClick只工作一次

时间:2017-04-03 21:58:39

标签: android onclick onclicklistener

当我尝试按下按钮时,它只能工作一次......

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

        }
    } );

我该如何解决?非常感谢

3 个答案:

答案 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++
    }
} );

希望这会有所帮助。