android - 科学计算器中用户输入的数学表达式
问题描述
我想让 android 科学计算器将用户输入显示为像教科书格式一样的数学表达式。例如,当单击分数按钮时,会出现一个分子和分母框供用户输入。请帮我一把。
解决方案
我希望这可以让您提前开始我已经为对话框创建了一个 xml,其中包含您输入分数的提名者和分母的框,她在下面
<?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 =“fraction”,这是一个在主要活动中实现的方法,用于处理按钮点击,但无论如何你都可以这样做觉得舒服。
<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>
为了让 EditTexts 看起来有点可爱,这只是对我来说,你也可以按照你想要的方式来做,我制作了一个 drawble xml,我将它设置为 Edittexts 背景,这里是
<?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>
现在为 Activity 部分处理功能继承代码,注意这是很好的注释,你可以很容易地理解它
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()
}
}
这应该让您了解如何使用您的应用程序。谢谢
推荐阅读
- javascript - 推送数组增量和唯一数组元素
- netlogo - 在 netlogo 中应用二次风险规划
- mysql - 使用左连接添加 where 条件
- nginx - 制作 webhook 时主管关闭服务器
- laravel - 在 Laravel 7 中无法使用自定义保护来调用受身份验证保护的端点
- javascript - Vuejs,如何构建一个对象?
- excel - Range("Q1048576") 是什么意思
- javascript - 使用选择器获取最近的父元素(不包括当前元素)
- html - 使用 Nunito 字体居中错误
- python - Oauth 在服务器上托管时重定向到 localhost