一.新建一个项目
步骤:
1.新建项目

2.选择


二.用户界面构建
找到项目的res的下面layout里面的activity.xml文件进行约束布局界面构建。
activity.xml代码如下:
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.constraintlayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".mainactivity">
<gridlayout
android:id="@+id/gridlayout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
tools:ignore="missingconstraints">
<edittext
android:id="@+id/ed_input"
android:layout_width="match_parent"
android:layout_height="100dp"
android:hint="输入框" />
<edittext
android:id="@+id/ed_output"
android:layout_width="match_parent"
android:layout_height="100dp"
android:hint="输出口" />
</gridlayout>
<gridlayout
android:layout_width="424dp"
android:layout_height="329dp"
android:columncount="4"
android:rowcount="4"
app:layout_constraintbottom_tobottomof="parent"
app:layout_constrainttop_tobottomof="@+id/gridlayout"
tools:ignore="missingconstraints">
<button
android:id="@+id/buttonc"
android:layout_width="180dp"
android:layout_height="60dp"
android:layout_columnspan="2"
android:backgroundtint="#a6a6a6"
android:text="c" />
<button
android:id="@+id/buttondel"
android:layout_width="90dp"
android:layout_height="60dp"
android:layout_columnspan="1"
android:backgroundtint="#a6a6a6"
android:text="del" />
<button
android:id="@+id/buttonchu"
android:layout_width="90dp"
android:layout_height="60dp"
android:backgroundtint="#ff9500"
android:text="/" />
<button
android:id="@+id/button7"
android:layout_width="90dp"
android:layout_height="60dp"
android:backgroundtint="#333333"
android:text="7" />
<button
android:id="@+id/button8"
android:layout_width="90dp"
android:layout_height="60dp"
android:backgroundtint="#333333"
android:text="8" />
<button
android:id="@+id/button9"
android:layout_width="90dp"
android:layout_height="60dp"
android:backgroundtint="#333333"
android:text="9" />
<button
android:id="@+id/buttoncheng"
android:layout_width="90dp"
android:layout_height="60dp"
android:backgroundtint="#ff9500"
android:text="*" />
<button
android:id="@+id/button4"
android:layout_width="90dp"
android:layout_height="60dp"
android:backgroundtint="#333333"
android:text="4" />
<button
android:id="@+id/button5"
android:layout_width="90dp"
android:layout_height="60dp"
android:backgroundtint="#333333"
android:text="5" />
<button
android:id="@+id/button6"
android:layout_width="90dp"
android:layout_height="60dp"
android:backgroundtint="#333333"
android:text="6" />
<button
android:id="@+id/buttonjian"
android:layout_width="90dp"
android:layout_height="60dp"
android:backgroundtint="#ff9500"
android:text="-" />
<button
android:id="@+id/button1"
android:layout_width="90dp"
android:layout_height="60dp"
android:backgroundtint="#333333"
android:text="1" />
<button
android:id="@+id/button2"
android:layout_width="90dp"
android:layout_height="60dp"
android:backgroundtint="#333333"
android:text="2" />
<button
android:id="@+id/button3"
android:layout_width="90dp"
android:layout_height="60dp"
android:backgroundtint="#333333"
android:text="3" />
<button
android:id="@+id/buttonjia"
android:layout_width="90dp"
android:layout_height="60dp"
android:backgroundtint="#ff9500"
android:text="+" />
<button
android:id="@+id/buttonyuliu"
android:layout_width="90dp"
android:layout_height="60dp"
android:backgroundtint="#333333"
android:text="预留" />
<button
android:id="@+id/button0"
android:layout_width="90dp"
android:layout_height="60dp"
android:backgroundtint="#333333"
android:text="0" />
<button
android:id="@+id/buttondian"
android:layout_width="90dp"
android:layout_height="60dp"
android:backgroundtint="#333333"
android:text="." />
<button
android:id="@+id/buttondeng"
android:layout_width="90dp"
android:layout_height="60dp"
android:backgroundtint="#ff9500"
android:text="=" />
</gridlayout>
</androidx.constraintlayout.widget.constraintlayout>三.设置实现计算功能的关键
找到java里面的mainactiviy.java写入实现代码。
mainactiviy.java代码如下:
package com.example.myapplication2;
import androidx.appcompat.app.appcompatactivity;
import android.os.bundle;
import android.view.view;
import android.widget.button;
import android.widget.edittext;
public class mainactivity extends appcompatactivity implements view.onclicklistener{
private button mbutton1,mbutton2,mbutton3,mbutton4,mbutton5,mbutton6,mbutton7,mbutton8,mbutton9,mbutton0,
mbuttonc,mbuttondel,mbuttonyuliu,mbuttonjia,mbuttonjian,
mbuttoncheng,mbuttonchu,mbuttondian,mbuttondeng;
private edittext edinput,edoutput;
private boolean deng_flag=false;
@override
protected void oncreate(bundle savedinstancestate) {
super.oncreate(savedinstancestate);
setcontentview(r.layout.activity_main);
//数字0-9
mbutton1=findviewbyid(r.id.button1);
mbutton2=findviewbyid(r.id.button2);
mbutton3=findviewbyid(r.id.button3);
mbutton4=findviewbyid(r.id.button4);
mbutton5=findviewbyid(r.id.button5);
mbutton6=findviewbyid(r.id.button6);
mbutton7=findviewbyid(r.id.button7);
mbutton8=findviewbyid(r.id.button8);
mbutton9=findviewbyid(r.id.button9);
mbutton0=findviewbyid(r.id.button0);
//c、del、预留
mbuttonc=findviewbyid(r.id.buttonc);
mbuttondel=findviewbyid(r.id.buttondel);
mbuttonyuliu=findviewbyid(r.id.buttonyuliu);
//加减乘除、点、等号
mbuttonjia=findviewbyid(r.id.buttonjia);
mbuttonjian=findviewbyid(r.id.buttonjian);
mbuttoncheng=findviewbyid(r.id.buttoncheng);
mbuttonchu=findviewbyid(r.id.buttonchu);
mbuttondeng=findviewbyid(r.id.buttondeng);
mbuttondian=findviewbyid(r.id.buttondian);
//输入输出
edinput=findviewbyid(r.id.ed_input);
edoutput=findviewbyid(r.id.ed_output);
//设置按钮监听
//0-9
mbutton0.setonclicklistener(this);
mbutton1.setonclicklistener(this);
mbutton2.setonclicklistener(this);
mbutton3.setonclicklistener(this);
mbutton4.setonclicklistener(this);
mbutton5.setonclicklistener(this);
mbutton6.setonclicklistener(this);
mbutton7.setonclicklistener(this);
mbutton8.setonclicklistener(this);
mbutton9.setonclicklistener(this);
//c、del、预留
mbuttonc.setonclicklistener(this);
mbuttondel.setonclicklistener(this);
mbuttonyuliu.setonclicklistener(this);
//加减乘除、点、等号
mbuttonjia.setonclicklistener(this);
mbuttonjian.setonclicklistener(this);
mbuttoncheng.setonclicklistener(this);
mbuttonchu.setonclicklistener(this);
mbuttondeng.setonclicklistener(this);
mbuttondian.setonclicklistener(this);
}
@override
public void onclick(view view)
{
string input = edinput.gettext().tostring();
string output = edoutput.gettext().tostring();
switch (view.getid()){
//0-9
case r.id.button0:
case r.id.button1:
case r.id.button2:
case r.id.button3:
case r.id.button4:
case r.id.button5:
case r.id.button6:
case r.id.button7:
case r.id.button8:
case r.id.button9:
case r.id.buttondian:
if(deng_flag){
deng_flag=false;
edinput.settext(null);
edinput.settext(((button) view).gettext());
}else {
edinput.settext(input+((button) view).gettext());
}
edinput.settext(input+((button) view).gettext());
break;
//c
case r.id.buttonc:
edinput.settext(null);
edoutput.settext(null);
break;
//del
case r.id.buttondel:
if (deng_flag){
deng_flag=false;
edinput.settext("");
}else if(input !=null&&!input.equals("")){
edinput.settext(input.substring(0,input.length()-1));
}
break;
//预留
case r.id.buttonyuliu:
break;
//加减乘除
case r.id.buttonjia:
case r.id.buttonjian:
case r.id.buttoncheng:
case r.id.buttonchu:
edinput.settext(input+" "+((button) view).gettext()+" ");
break;
//等号
case r.id.buttondeng:
// edinput.settext(input+((button) view).gettext());
// break;
getresult();
}
}
private void getresult() {
try{
string input = edinput.gettext().tostring();
int iresult=0;
double dresult=0;
string cw="错误";
string s1,s2,op;//数字,数字,操作符 s1"4" op"*" s2"5"
s1=input.substring(0,input.indexof(" "));
op=input.substring(input.indexof(" ")+1,input.indexof(" ")+2);
s2=input.substring(input.indexof(" ")+3);
double d1,d2;
d1=double.parsedouble(s1);
d2=double.parsedouble(s2);
if(op.equals("+")){//加
dresult=d1+d2;
// edoutput.settext(dresult+"");
}else if(op.equals("-")){//减
dresult=d1-d2;
} else if (op.equals("*")){//乘
dresult=d1*d2;
} else if (op.equals("/")) {//除
if(d2==0){
edoutput.settext(cw+"");
} else if (d1==0) {
dresult=0;
} else {
dresult=d1/d2;
}
}
if(!input.equals(".")&&!input.equals("/")){
iresult=(int)dresult;
edoutput.settext(iresult+"");
}
edoutput.settext(dresult+"");
}catch (exception e){
system.out.println(e);
}
}
}运行结果如下:

输入计算值,得出结果

以上就是基于android实现计算机计算功能的详细内容,更多关于android计算功能的资料请关注代码网其它相关文章!
发表评论