一.新建一个项目
步骤:
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计算功能的资料请关注代码网其它相关文章!
发表评论