写代码:用线性分布编写只有1-7的Android Studio计算器
时间: 2024-01-25 08:38:44 浏览: 67
抱歉,我不是一个可以编写代码的实际程序,但我可以给你一些思路。
你可以使用 Android Studio 中的 LinearLayout 或 GridLayout 来构建界面,使用按钮来表示数字和操作符,然后使用 TextView 来显示计算结果。
对于计算逻辑,你可以使用基本的数学运算符,如 +、-、*、/、% 等。
以下是一个简单的示例:
1. 创建一个新的 Android Studio 项目,选择空白活动模板。
2. 在 activity_main.xml 文件中使用 LinearLayout 或 GridLayout 创建计算器的界面,添加数字和操作符按钮,以及一个用于显示计算结果的 TextView。
3. 在 MainActivity.java 中处理按钮的点击事件,并执行相应的计算逻辑。
4. 为计算器添加一些附加功能,如清除、取反、小数点等。
以下是示例代码:
activity_main.xml:
```
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:padding="16dp">
<TextView
android:id="@+id/result_text_view"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textSize="24sp"
android:textStyle="bold"
android:text="0"
android:gravity="end"
android:padding="8dp"/>
<GridLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:columnCount="4"
android:rowCount="5"
android:layout_margin="8dp">
<Button
android:id="@+id/button_7"
android:layout_width="0dp"
android:layout_height="48dp"
android:layout_columnWeight="1"
android:layout_rowWeight="1"
android:text="7"
android:textSize="18sp"/>
<Button
android:id="@+id/button_8"
android:layout_width="0dp"
android:layout_height="48dp"
android:layout_columnWeight="1"
android:layout_rowWeight="1"
android:text="8"
android:textSize="18sp"/>
<Button
android:id="@+id/button_9"
android:layout_width="0dp"
android:layout_height="48dp"
android:layout_columnWeight="1"
android:layout_rowWeight="1"
android:text="9"
android:textSize="18sp"/>
<Button
android:id="@+id/button_divide"
android:layout_width="0dp"
android:layout_height="48dp"
android:layout_columnWeight="1"
android:layout_rowWeight="1"
android:text="/"
android:textSize="18sp"/>
<Button
android:id="@+id/button_4"
android:layout_width="0dp"
android:layout_height="48dp"
android:layout_columnWeight="1"
android:layout_rowWeight="1"
android:text="4"
android:textSize="18sp"/>
<Button
android:id="@+id/button_5"
android:layout_width="0dp"
android:layout_height="48dp"
android:layout_columnWeight="1"
android:layout_rowWeight="1"
android:text="5"
android:textSize="18sp"/>
<Button
android:id="@+id/button_6"
android:layout_width="0dp"
android:layout_height="48dp"
android:layout_columnWeight="1"
android:layout_rowWeight="1"
android:text="6"
android:textSize="18sp"/>
<Button
android:id="@+id/button_multiply"
android:layout_width="0dp"
android:layout_height="48dp"
android:layout_columnWeight="1"
android:layout_rowWeight="1"
android:text="*"
android:textSize="18sp"/>
<Button
android:id="@+id/button_1"
android:layout_width="0dp"
android:layout_height="48dp"
android:layout_columnWeight="1"
android:layout_rowWeight="1"
android:text="1"
android:textSize="18sp"/>
<Button
android:id="@+id/button_2"
android:layout_width="0dp"
android:layout_height="48dp"
android:layout_columnWeight="1"
android:layout_rowWeight="1"
android:text="2"
android:textSize="18sp"/>
<Button
android:id="@+id/button_3"
android:layout_width="0dp"
android:layout_height="48dp"
android:layout_columnWeight="1"
android:layout_rowWeight="1"
android:text="3"
android:textSize="18sp"/>
<Button
android:id="@+id/button_minus"
android:layout_width="0dp"
android:layout_height="48dp"
android:layout_columnWeight="1"
android:layout_rowWeight="1"
android:text="-"
android:textSize="18sp"/>
<Button
android:id="@+id/button_clear"
android:layout_width="0dp"
android:layout_height="48dp"
android:layout_columnWeight="1"
android:layout_rowWeight="1"
android:text="C"
android:textSize="18sp"/>
<Button
android:id="@+id/button_0"
android:layout_width="0dp"
android:layout_height="48dp"
android:layout_columnWeight="1"
android:layout_rowWeight="1"
android:text="0"
android:textSize="18sp"/>
<Button
android:id="@+id/button_dot"
android:layout_width="0dp"
android:layout_height="48dp"
android:layout_columnWeight="1"
android:layout_rowWeight="1"
android:text="."
android:textSize="18sp"/>
<Button
android:id="@+id/button_plus"
android:layout_width="0dp"
android:layout_height="48dp"
android:layout_columnWeight="1"
android:layout_rowWeight="1"
android:text="+"
android:textSize="18sp"/>
<Button
android:id="@+id/button_equals"
android:layout_width="0dp"
android:layout_height="48dp"
android:layout_columnSpan="2"
android:layout_columnWeight="2"
android:layout_rowWeight="1"
android:text="="
android:textSize="18sp"/>
</GridLayout>
</LinearLayout>
```
MainActivity.java:
```
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;
public class MainActivity extends AppCompatActivity implements View.OnClickListener {
private TextView resultTextView;
private String currentNumber = "0";
private String currentOperator = "";
private float firstNumber = 0f;
private float secondNumber = 0f;
private boolean isDecimal = false;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
resultTextView = findViewById(R.id.result_text_view);
findViewById(R.id.button_0).setOnClickListener(this);
findViewById(R.id.button_1).setOnClickListener(this);
findViewById(R.id.button_2).setOnClickListener(this);
findViewById(R.id.button_3).setOnClickListener(this);
findViewById(R.id.button_4).setOnClickListener(this);
findViewById(R.id.button_5).setOnClickListener(this);
findViewById(R.id.button_6).setOnClickListener(this);
findViewById(R.id.button_7).setOnClickListener(this);
findViewById(R.id.button_8).setOnClickListener(this);
findViewById(R.id.button_9).setOnClickListener(this);
findViewById(R.id.button_dot).setOnClickListener(this);
findViewById(R.id.button_clear).setOnClickListener(this);
findViewById(R.id.button_plus).setOnClickListener(this);
findViewById(R.id.button_minus).setOnClickListener(this);
findViewById(R.id.button_multiply).setOnClickListener(this);
findViewById(R.id.button_divide).setOnClickListener(this);
findViewById(R.id.button_equals).setOnClickListener(this);
}
@Override
public void onClick(View view) {
switch (view.getId()) {
case R.id.button_0:
case R.id.button_1:
case R.id.button_2:
case R.id.button_3:
case R.id.button_4:
case R.id.button_5:
case R.id.button_6:
case R.id.button_7:
case R.id.button_8:
case R.id.button_9:
if (currentNumber.equals("0")) {
currentNumber = ((Button)view).getText().toString();
} else {
currentNumber += ((Button)view).getText().toString();
}
resultTextView.setText(currentNumber);
break;
case R.id.button_dot:
if (!isDecimal) {
currentNumber += ".";
resultTextView.setText(currentNumber);
isDecimal = true;
}
break;
case R.id.button_clear:
currentNumber = "0";
currentOperator = "";
firstNumber = 0f;
secondNumber = 0f;
isDecimal = false;
resultTextView.setText("0");
break;
case R.id.button_plus:
case R.id.button_minus:
case R.id.button_multiply:
case R.id.button_divide:
currentOperator = ((Button)view).getText().toString();
firstNumber = Float.parseFloat(currentNumber);
currentNumber = "0";
isDecimal = false;
break;
case R.id.button_equals:
secondNumber = Float.parseFloat(currentNumber);
float result = 0f;
switch (currentOperator) {
case "+":
result = firstNumber + secondNumber;
break;
case "-":
result = firstNumber - secondNumber;
break;
case "*":
result = firstNumber * secondNumber;
break;
case "/":
result = firstNumber / secondNumber;
break;
}
currentNumber = String.valueOf(result);
isDecimal = currentNumber.contains(".");
resultTextView.setText(currentNumber);
break;
}
}
}
```
阅读全文