android studio实现简单计算器(线性布局)
时间: 2025-01-03 08:34:19 浏览: 48
### 使用线性布局创建简单计算器应用
#### 创建项目结构
在 Android Studio 中新建一个项目,选择 `Empty Activity` 模板。设置项目的名称和包名。
#### 设计用户界面
打开 `res/layout/activity_main.xml` 文件,使用 XML 定义 UI 组件。为了简化设计,仅采用垂直方向的 `LinearLayout` 来排列各个控件:
```xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<!-- 显示屏 -->
<EditText
android:id="@+id/display"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:inputType="none"
android:textSize="36sp"
android:gravity="end|bottom"
android:background="#FFFFFF"/>
<!-- 数字按钮区 -->
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:weightSum="4"
android:orientation="horizontal">
<Button
android:id="@+id/button_7"
android:layout_weight="1"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:text="7"/>
<Button
android:id="@+id/button_8"
android:layout_weight="1"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:text="8"/>
<Button
android:id="@+id/button_9"
android:layout_weight="1"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:text="9"/>
<Button
android:id="@+id/button_divide"
android:layout_weight="1"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:text="/"/>
</LinearLayout>
<!-- 更多行按照上述模式继续添加 -->
</LinearLayout>
```
此部分定义了一个基本框架,包括显示屏区域以及第一排按键。后续可以通过复制粘贴的方式快速完成剩余键位的设计[^1]。
#### 编写逻辑代码
切换到 Java 或 Kotlin 类文件 (`MainActivity.java` / `MainActivity.kt`) ,编写事件处理程序来响应用户的点击动作,并更新显示内容:
对于Java版本:
```java
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
public class MainActivity extends AppCompatActivity {
private EditText display;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
display = findViewById(R.id.display); // 获取输入框对象
Button button7 = findViewById(R.id.button_7);
button7.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
appendToDisplay("7");
}
});
// 对其他按钮也做类似的绑定...
}
private void appendToDisplay(String str){
String currentText = display.getText().toString();
display.setText(currentText + str);
}
}
```
对于Kotlin版本:
```kotlin
class MainActivity : AppCompatActivity() {
lateinit var display: EditText
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
display = findViewById(R.id.display) // 获取输入框对象
val button7 = findViewById<Button>(R.id.button_7).apply{
setOnClickListener { appendToDisplay("7") }
}
// 对其他按钮也做类似的绑定...
}
private fun appendToDisplay(str:String){
val currentText = display.text.toString()
display.setText("$currentText$str")
}
}
```
通过这种方式实现了基础功能——当按下某个数字或运算符时会在屏幕上追加相应的字符[^2]。
阅读全文
相关推荐


















