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

时间:2018-07-10 00:32:24

标签: android android-studio calculator

我试图在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");
            }
        });
    }
}

3 个答案:

答案 0 :(得分:3)

使用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");
        }
    });

答案 1 :(得分:0)

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

答案 2 :(得分:0)

实际上,实际发生的情况是每次使用textView.setText("1")都会破坏包含任何文本的TextView缓冲区,并简单地将其替换为新文本,即"1",而使用textView.append("1")将更新缓冲区TextView的显示串联文本。有关更多详细信息,请参见this答案。