Android Studio OnClick只工作一次

Android Studio OnClick只工作一次,android,onclick,onclicklistener,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);

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

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

        }
    } );

我怎样才能解决它?非常感谢

我想你想做的是:

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方法,但每次都有相同的文本,因此它工作正常。每次单击都会设置相同的文本,因此您看不到任何更改。

您的代码似乎正常

您可以添加调试
log
或显示
toast
消息以了解
按钮
单击
状态

试试这个:

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

希望这会有所帮助。

没有理由。只有他的算术运算是错误的。