引言

计算器是每个学习 Android 开发者必经的经典项目之一。本篇文章将带你创建一个功能更强大的计算器应用,支持基本的加减乘除运算、带小数点的输入以及更多操作符功能。通过这个项目,你将全面掌握 Android 的布局设计、事件处理和逻辑实现技巧。

一、功能设计

基础功能

  1. 支持基本运算:加、减、乘、除。
  2. 支持小数点输入:可以输入和计算小数。
  3. 实时显示结果:输入数字和符号后立即显示计算结果。

进阶功能

  1. 清除功能:重置当前计算状态。
  2. 百分比运算:支持百分比的简单操作。
  3. 正负号切换:支持正负数输入。

二、项目创建与布局设计

1. 创建新项目

  1. 打开 Android Studio,点击 New Project。
  2. 选择 Empty Activity 模板,命名项目为 AdvancedCalculator。
  3. 选择编程语言为 Java 或 Kotlin。

2. 布局设计

打开 res/layout/activitymain.xml 文件,设计用户界面。

<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    android:padding="16dp">
    
    <!-- 显示屏 -->
    <EditText
        android:id="@+id/display"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:inputType="numberDecimal"
        android:gravity="right"
        android:padding="10dp"
        android:background="@android:color/white" />

    <!-- 数字和操作符按钮 -->
    <GridLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:rowCount="5"
        android:columnCount="4"
        android:padding="10dp">
        
        <Button
            android:id="@+id/btn_1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="1" />
        <Button
            android:id="@+id/btn_2"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="2" />
        <Button
            android:id="@+id/btn_3"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="3" />
        <Button
            android:id="@+id/btn_add"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="+" />
        
        <!-- 其他按钮 -->
        
    </GridLayout>
    
</LinearLayout>

三、事件处理和逻辑实现

1. 事件处理

MainActivity 中,为每个按钮设置点击事件监听器。

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

        findViewById(R.id.btn_1).setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                display.append("1");
            }
        });

        // 其他按钮的事件监听器
    }
}

2. 逻辑实现

在事件处理中,根据按钮点击事件实现相应的逻辑。

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

        findViewById(R.id.btn_1).setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                display.append("1");
            }
        });

        // 其他按钮的事件监听器

        findViewById(R.id.btn_add).setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                String currentText = display.getText().toString();
                display.setText(currentText + "+");
            }
        });
    }
}

四、总结

通过本篇文章,你学会了如何从零开发一个多功能计算器应用。从功能设计、布局设计、事件处理到逻辑实现,你全面掌握了 Android 开发的相关技巧。希望这个项目能够帮助你更好地学习和实践 Android 开发。