Android中TextView中的.setText和.append的区别

setText()  把以前的内容冲掉了,
append()在以前的内容后面添加。
这个区别应该很好理解。
如果原来字域的内容为空,则这两个方法的作用一样。
  • 10
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
package com.example.myapplication; import android.os.Bundle; import android.view.View; import android.widget.Button; import android.widget.TextView; import androidx.appcompat.app.AppCompatActivity; public class MainActivity extends AppCompatActivity { private TextView resultTextView; private StringBuilder expression; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); resultTextView = findViewById(R.id.resultTextView); expression = new StringBuilder(); } public void onButtonClick(View view) { Button button = (Button) view; String buttonText = button.getText().toString(); expression.append(buttonText); resultTextView.setText(expression.toString()); } public void onOperatorClick(View view) { Button button = (Button) view; String operator = button.getText().toString(); expression.append(" ").append(operator).append(" "); resultTextView.setText(expression.toString()); } public void onClearClick(View view) { expression.setLength(0); resultTextView.setText(""); } public void onEqualsClick(View view) { String[] parts = expression.toString().split(" "); if (parts.length != 3) { resultTextView.setText("Invalid expression"); return; } double operand1 = Double.parseDouble(parts[0]); double operand2 = Double.parseDouble(parts[2]); String operator = parts[1]; double result = 0; switch (operator) { case "+": result = operand1 + operand2; break; case "-": result = operand1 - operand2; break; case "*": result = operand1 * operand2; break; case "/": if (operand2 != 0) { result = operand1 / operand2; } else { resultTextView.setText("Division by zero"); return; } break; default: resultTextView.setText("Invalid operator"); return; } resultTextView.setText(String.valueOf(result)); expression.setLength(0); } }整段代码的逐行代码解析
最新发布
06-03
这是一个 Android 应用程序的主要活动(Activity)的代码。以下是逐行的解析: ```java package com.example.myapplication; ``` 声明包名为 `com.example.myapplication`。 ```java import android.os.Bundle; import android.view.View; import android.widget.Button; import android.widget.TextView; import androidx.appcompat.app.AppCompatActivity; ``` 导入所需的 Android 类。 ```java public class MainActivity extends AppCompatActivity { ``` 定义一个名为 `MainActivity` 的公共类,并继承自 `AppCompatActivity` 类。 ```java private TextView resultTextView; private StringBuilder expression; ``` 声明两个私有变量:一个 `TextView` 类型的 `resultTextView` 和一个 `StringBuilder` 类型的 `expression`。 ```java @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); resultTextView = findViewById(R.id.resultTextView); expression = new StringBuilder(); } ``` 重写 `onCreate()` 方法,并设置当前活动的布局为 `activity_main`。同时,初始化 `resultTextView` 和 `expression` 变量。 ```java public void onButtonClick(View view) { Button button = (Button) view; String buttonText = button.getText().toString(); expression.append(buttonText); resultTextView.setText(expression.toString()); } ``` 定义一个名为 `onButtonClick()` 的方法,当用户点击数字按钮时调用。该方法将按钮上的文本追加到 `expression` 变量,并将 `resultTextView` 的文本设置为 `expression` 的字符串表示形式。 ```java public void onOperatorClick(View view) { Button button = (Button) view; String operator = button.getText().toString(); expression.append(" ").append(operator).append(" "); resultTextView.setText(expression.toString()); } ``` 定义一个名为 `onOperatorClick()` 的方法,当用户点击运算符按钮时调用。该方法将运算符及其前后的空格追加到 `expression` 变量,并将 `resultTextView` 的文本设置为 `expression` 的字符串表示形式。 ```java public void onClearClick(View view) { expression.setLength(0); resultTextView.setText(""); } ``` 定义一个名为 `onClearClick()` 的方法,当用户点击清空按钮时调用。该方法将 `expression` 变量的长度设置为 0,并将 `resultTextView` 的文本设置为空字符串。 ```java public void onEqualsClick(View view) { String[] parts = expression.toString().split(" "); if (parts.length != 3) { resultTextView.setText("Invalid expression"); return; } double operand1 = Double.parseDouble(parts[0]); double operand2 = Double.parseDouble(parts[2]); String operator = parts[1]; double result = 0; switch (operator) { case "+": result = operand1 + operand2; break; case "-": result = operand1 - operand2; break; case "*": result = operand1 * operand2; break; case "/": if (operand2 != 0) { result = operand1 / operand2; } else { resultTextView.setText("Division by zero"); return; } break; default: resultTextView.setText("Invalid operator"); return; } resultTextView.setText(String.valueOf(result)); expression.setLength(0); } ``` 定义一个名为 `onEqualsClick()` 的方法,当用户点击等于按钮时调用。该方法将 `expression` 变量的字符串表示形式按空格分割成 `parts` 字符串数组。如果 `parts` 的长度不为 3,则将 `resultTextView` 的文本设置为 `"Invalid expression"` 并返回。否则,将 `parts` 数组的第一个和第三个元素分别转换为 `double` 类型的 `operand1` 和 `operand2`,运算符为 `parts` 数组的第二个元素,结果为 `result`。使用 `switch` 语句根据不同的运算符计算结果。如果运算符为 `"/"`,并且 `operand2` 为 0,则将 `resultTextView` 的文本设置为 `"Division by zero"` 并返回。否则,将 `result` 的字符串表示形式设置为 `resultTextView` 的文本,并将 `expression` 变量的长度设置为 0。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值