单击按钮后如何重复相同的文本?

How do I repeat the same text after clicking a button?

我想在 Android Studio 中制作一个简单的计算器,但在文本视图中重复相同的数字时遇到问题。

例如,如果我在计算器上按1,它会在上面显示数字1,但如果我再按一次,则没有任何反应。

因此,我无法生成大于 9 的数字。

这是我的代码:

public class MainActivity extends AppCompatActivity {

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

        Button btn = findViewById(R.id.button0);
        btn.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                TextView tv = findViewById(R.id.textView);
                tv.setVisibility(view.VISIBLE);
                tv.setText("0");
            }
        });

        btn = findViewById(R.id.button1);
        btn.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                TextView tv = findViewById(R.id.textView);
                tv.setVisibility(view.VISIBLE);
                tv.setText("1");
            }
        });
    }
}

使用 textViewObj.setText("1"); 将始终替换视图中的现有文本。根据您对需求的描述,textViewObj.append("1");应该是可以实现的。

textViewObj.setText("1");适当替换为textViewObj.append("1");,如下

    btn.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            TextView tv = findViewById(R.id.textView);
            tv.setVisibility(view.VISIBLE);
            tv.append("1");
        }
    });

btn 是您点击的按钮:

btn.setOnClickListener((view)->{
String currentNumber = txtViewObj.getText().toString();
String number =  ((TextView)view).getText().toString(); //I assume that you already named each button corresponding to its number, for example button1 call it 1, button2 call it 2
txtViewObj.setText(currentNumber+number);
});

实际上,每次使用 textView.setText("1") 都会破坏包含任何文本的 TextView 缓冲区,并简单地用新文本替换它,即 "1" 并使用 textView.append("1") 将更新TextView 的缓冲区以显示连接的文本。有关更多详细信息,请参阅 this 答案。