学习进度笔记
<EditText
android:id="@+id/editText"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:inputType="number" />
<Button
android:id="@+id/buttonAdd"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="+" />
<Button
android:id="@+id/buttonSubtract"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="-" />
<Button
android:id="@+id/buttonMultiply"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="*" />
<Button
android:id="@+id/buttonDivide"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="/" />
<Button
android:id="@+id/buttonEquals"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="=" />
<TextView
android:id="@+id/textViewResult"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="24sp" />
接下来,在MainActivity.java
文件中,添加以下代码来处理按钮点击事件和计算逻辑:
javaCopy Code
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
import androidx.appcompat.app.AppCompatActivity;
public class MainActivity extends AppCompatActivity {
private EditText editText;
private Button buttonAdd;
private Button buttonSubtract;
private Button buttonMultiply;
private Button buttonDivide;
private Button buttonEquals;
private TextView textViewResult;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// 初始化视图
editText = findViewById(R.id.editText);
buttonAdd = findViewById(R.id.buttonAdd);
buttonSubtract = findViewById(R.id.buttonSubtract);
buttonMultiply = findViewById(R.id.buttonMultiply);
buttonDivide = findViewById(R.id.buttonDivide);
buttonEquals = findViewById(R.id.buttonEquals);
textViewResult = findViewById(R.id.textViewResult);
// 设置按钮点击事件
buttonAdd.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
calculate('+');
}
});
buttonSubtract.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
calculate('-');
}
});
buttonMultiply.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
calculate('*');
}
});
buttonDivide.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
calculate('/');
}
});
buttonEquals.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
calculate('=');
}
});
}
private void calculate(char operator) {
String input = editText.getText().toString();
String[] numbers = input.split("[+\\-*/=]");
if (numbers.length != 2) {
textViewResult.setText("Invalid input");
return;
}
double num1 = Double.parseDouble(numbers[0]);
double num2 = Double.parseDouble(numbers[1]);
double result = 0;
switch (operator) {
case '+':
result = num1 + num2;
break;
case '-':
result = num1 - num2;
break;
case '*':
result = num1 * num2;
break;
case '/':
if (num2 != 0) {
result = num1 / num2;
} else {
textViewResult.setText("Cannot divide by zero");
return;
}
break;
}
textViewResult.setText(String.valueOf(result));
}
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通