在Android / JAVA中更改变量的值

我试图制作一个简单的应用,其中单击tapb按钮可将notaps的变量值递增,而reset按钮会将其设置为0.当我单击tapb时,其值将递增&.单击重置会重置它,但是当我再次单击tabp时,它会从以前的值开始递增.

例如:

init value of notaps = 0;

我单击tabp 3次,notaps值= 3

我单击重置,notaps值= 0

我单击tabp 3次,notaps值= 4

    Button tapb = (Button)findViewById(R.id.tapb);
    Button reset = (Button)findViewById(R.id.reset);


    tapb.setOnClickListener(
            new Button.OnClickListener(){
                int notaps = 0;
                @Override
                public void onClick(View v) {
                    TextView taps = (TextView)findViewById(R.id.taps);
                    notaps++;
                    taps.setText(String.valueOf(notaps));

                }
            }
    );

    reset.setOnClickListener(
            new Button.OnClickListener() {

                @Override
                public void onClick(View v) {
                    TextView taps = (TextView) findViewById(R.id.taps);
                    int notaps=0;
                    taps.setText(String.valueOf(notaps));

                }
            }
    );

解决方法:

首先,您有两个名为notaps的int实例,它们彼此无关.您的重置按钮未设置正确的notaps变量.

这是一个应该起作用的代码段.

    private int notaps;

    Button tapb = (Button)findViewById(R.id.tapb);
    Button reset = (Button)findViewById(R.id.reset);
    TextView taps = (TextView)findViewById(R.id.taps);

    tapb.setOnClickListener(
        new Button.OnClickListener(){
            @Override
            public void onClick(View v) {
                notaps++;
                taps.setText(String.valueOf(notaps));
            }
        }
    );

    reset.setOnClickListener(
        new Button.OnClickListener() {
            @Override
            public void onClick(View v) {
                notaps = 0;
                taps.setText(String.valueOf(notaps));
            }
        }
    );
上一篇:Android 进阶答疑:Hook


下一篇:android-在RecyclerView中的ImageView中更改图像