如何更改按钮文字onClick?

时间:2020-03-27 19:28:56

标签: java android onclick counter

我是Android的新手,在我的课堂上,我们必须制作一个程序,每按一次按钮,计数就会增加,并且此数字显示在按钮内部。例如,按钮从0开始,然后单击按钮,它将文本从0更改为1,然后再次单击将文本从1更改为2,依此类推,但是按钮中的数字发生了变化。是否可以在不使用TextView的情况下做类似的事情?

这是我的activity_main.xml中的内容

package com.example.tapgrid;

import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import android.widget.Button;

public class MainActivity extends AppCompatActivity {

    Button showValue;
    int counter = 0;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        showValue = (Button) findViewById(R.id.button);
    }

    public void countUp (Button view) {
        counter++;
        showValue.setText(Integer.toString(counter));
    }

}

这就是我的MainActivity.java中的内容

def dirReduc(arr):
    t=[[0,0]]

    a=[0,0]
    b=0
    while b<len(arr):

         if arr[b]=='NORTH':
            print(b)

            a[0]=a[0]+1
            print(a)
            t.append(a)

        b=b+1
    print(t)



print(dirReduc(["NORTH", "SOUTH", "SOUTH", "EAST", "WEST", "NORTH", "WEST"]))
# I wish to modify this to [[0,0],[1,0],[0,0],[-1,0],[-1,1],[-1,0],[0,0],[0,-1]]
# if 'North' [a+1,b], if 'South' [a-1,b],if 'West' [a,b-1],if 'East' [a,b+1]

3 个答案:

答案 0 :(得分:1)

EditText仅接受Strings值,因为counter变量是一个整数,因此应用程序崩溃,最好将其转换为string然后将其设置为edittext

showValue.setText(String.valueOf(counter));

答案 1 :(得分:0)

您需要在用于监听点击事件的按钮上设置onClick监听器

findViewById(R.id.button).setOnClickListener(clickListener);
...

private View.OnClickListener clickListener = v -> {
    int count = Integer.parseInt(((Button) v).getText().toString());
    ((Button) v).setText(String.valueOf(++count));
};

答案 2 :(得分:0)

public class MainActivity extends AppCompatActivity {

    Button button;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        button = findViewById(R.id.button);
        button.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                String str = (String) button.getText();
                int i = Integer.parseInt(str);
                button.setText(String.valueOf(++i));

            }
        });
    }
}
相关问题