在android / JAVA中更改变量的值

时间:2015-08-05 17:02:39

标签: java android button textview onclicklistener

我试图制作一个简单的应用,其中点击tapb Button会增加notaps的变量值,重置Button会将其设置为0.当我点击tapb时,它会递增价值与价值点击reset会重置它,但当我再次点击tabp时,它会从之前的值开始增加。

例如:

init value of notaps = 0;

我点击tabp 3次,notaps值= 3

点击resetnotaps值= 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));

                }
            }
    );

2 个答案:

答案 0 :(得分:4)

首先,您有两个名为int的{​​{1}}实例,彼此无关。您的重置按钮未设置正确的notaps变量。

这是一个应该有效的片段。

notaps

答案 1 :(得分:-1)

尝试全局声明你的notaps变量意味着每个你声明按钮的地方都声明你的notaps变量,这就是我的意思。

Button tapb = (Button)findViewById(R.id.tapb);
Button reset = (Button)findViewById(R.id.reset);
int notaps = 0; // declare variable globally

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

            }
        }
);

reset.setOnClickListener(
        new Button.OnClickListener() {

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

            }
        }
);