科学计算器中用户输入的数学表达式



我想制作一个android科学计算器,将用户输入显示为教科书格式的数学表达式。例如,当点击分数按钮时,会出现一个分子和分母框供用户输入。请帮我一把。

我希望这能让你提前开始我创建了一个xml for对话框,其中有输入分数的主格和分母的框,她在下面

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical">
<LinearLayout
android:layout_marginTop="10dp"
android:id="@+id/fractionLayout"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical">
<EditText
android:id="@+id/nominator"
android:layout_width="50dp"
android:layout_height="50dp"
android:layout_gravity="center_horizontal"
android:layout_marginLeft="5dp"
android:layout_marginRight="5dp"
android:background="@drawable/round_white"
android:textAlignment="center" />
<View
android:layout_width="70dp"
android:layout_height="1dp"
android:layout_gravity="center_horizontal"
android:layout_marginLeft="5dp"
android:layout_marginTop="5dp"
android:layout_marginRight="5dp"
android:background="@color/black" />
<EditText
android:id="@+id/denominator"
android:layout_width="50dp"
android:layout_height="50dp"
android:layout_gravity="center_horizontal"
android:layout_marginLeft="5dp"
android:layout_marginTop="5dp"
android:layout_marginRight="5dp"
android:background="@drawable/round_white"
android:textAlignment="center" />
</LinearLayout>
<Button
android:id="@+id/ok"
android:layout_width="60dp"
android:layout_height="50dp"
android:layout_below="@+id/fractionLayout"
android:layout_centerHorizontal="true"
android:layout_gravity="center"
android:layout_marginTop="20dp"
android:text="Ok" />

</RelativeLayout>

然后还有一个xml,它有一个分数按钮,在这个xml中我创建了一个onClick=";分数";,一个在主活动中实现的方法,用于处理按钮单击,但您可以在任何您觉得舒服的地方执行此操作。

<androidx.coordinatorlayout.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">
<ImageButton
android:id="@+id/fraction"
android:layout_width="50dp"
android:layout_height="50dp"
android:layout_gravity="center"
android:background="@drawable/fraction"
android:elevation="4dp"
android:onClick="fraction" />
</androidx.coordinatorlayout.widget.CoordinatorLayout>

为了让EditText看起来有点可爱,这只是为了我,你也可以按照你想要的方式来做。我制作了一个可绘制的xml,我将其设置为EditText背景,这里是

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:padding="10dp"
android:shape="rectangle">
<solid android:color="@android:color/white" /> <!-- this one is ths color of the Rounded Button -->
<corners android:radius="20dp" />
<stroke
android:width="2dp"
android:color="@android:color/holo_blue_light" />
</shape>

现在,对于活动部分来处理代码的功能性,请注意,这是一个很好的注释,你可以很容易地理解它

import android.app.Dialog
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import android.view.View
import android.widget.Button
import android.widget.EditText
import android.widget.Toast
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
}
//onclick fucntion created from the XML
fun fraction(view: View) {
//create a dialog to call the fraction input boxes
val fraction = Dialog(this)
fraction.setContentView(R.layout.trial)

// find the fraction boxes
val nominator = fraction.findViewById<EditText>(R.id.nominator)
val denominator = fraction.findViewById<EditText>(R.id.denominator)
val okBtn = fraction.findViewById<Button>(R.id.ok)
//get the text entered from the fraction boxes
val nom = nominator.text
val den = denominator.text
okBtn.setOnClickListener {
//dismiss the fraction dialog
fraction.dismiss()
//show th values entered in the boxes
Toast.makeText(this, "${nom}/${den}", Toast.LENGTH_LONG).show()
}
fraction.show()
}
}

这应该会让你对如何使用你的应用程序有一个想法。感谢

最新更新