编写一个安卓应用程序需要了解Android的开发环境和工具,例如Android Studio。下面是一个简单的Android计算器应用程序的示例代码,其中包含MC、M+、M- 和 MR按键的功能。
### 主Activity类(MainActivity.java)package com.example.calculator;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import androidx.appcompat.app.AppCompatActivity;
public class MainActivity extends AppCompatActivity {
private EditText display;
private double memory = 0.0;
private double currentResult = 0.0;
private String currentOperator = "";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
display = findViewById(R.id.editText);
// Set buttons onClick listeners
setListeners();
}
private void setListeners() {
findViewById(R.id.button_mc).setOnClickListener(this::mcClicked);
findViewById(R.id.button_mplus).setOnClickListener(this::mPlusClicked);
findViewById(R.id.button_mminus).setOnClickListener(this::mMinusClicked);
findViewById(R.id.button_mr).setOnClickListener(this::mrClicked);
// Also set listeners for digits and operators
// Example for number 1
findViewById(R.id.button_1).setOnClickListener(v -> addToDisplay("1"));
// Similarly set for all other buttons
}
private void mcClicked(View view) {
memory = 0.0;
}
private void mPlusClicked(View view) {
memory += getDisplayValue();
}
private void mMinusClicked(View view) {
memory -= getDisplayValue();
}
private void mrClicked(View view) {
display.setText(String.valueOf(memory));
}
private void addToDisplay(String value) {
display.setText(display.getText().append(value));
}
private double getDisplayValue() {
try {
return Double.parseDouble(display.getText().toString());
} catch (NumberFormatException e) {
return 0.0;
}
}
// Implement other operations (addition, subtraction, etc.)
}
### 布局文件(activity_main.xml)<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">
<EditText
android:id="@+id/editText"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:inputType="none"
android:focusable="false"
android:gravity="right"
android:textSize="30sp"/>
<GridLayout
android:layout_below="@+id/editText"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:columnCount="4">
<Button android:id="@+id/button_mc" android:text="MC" />
<Button android:id="@+id/button_mplus" android:text="M+" />
<Button android:id="@+id/button_mminus" android:text="M-" />
<Button android:id="@+id/button_mr" android:text="MR" />
<!-- Add buttons for digits and other operations -->
<Button android:id="@+id/button_1" android:text="1" />
<!-- Add buttons for 0-9, +, -, *, /, =, etc. -->
</GridLayout>
</RelativeLayout>
### 说明
1. **MainActivity.java**:主要的逻辑处理类。设置了基本的内存操作功能键逻辑和显示数值更新。
2. **activity_main.xml**:UI布局文件,使用了`EditText`显示结果和`GridLayout`组织按钮。
3. 您需要在项目中继续添加所有数字按钮及其事件逻辑。
请注意,对于完整应用,需确保所有功能按键及UI元素都实现相应功能,并处理各种输入情況。建议在设备或模拟器上测试应用以确保所有功能正常运行。
以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。 |