Android简易计算器----布局_菜单_提示框 的运用
我们来讲一个计算器的Android的应用实例,其中包含了布局嵌套、菜单以及提示框的运用。下面的这个程序的效果图。
根据看到的结果,我们可以将这个布局分为两部分,第一部分就是上面一行的
下面是布局文件的代码:
activity_main.xml
在上边的程序中还运用到了菜单。这个事件的设计用到了menu文件夹下的main.mxl,我们在main.xml中设计菜单,下面是代码:
main.xml
string.xml
<?xml version="1.0" encoding="utf-8"?> computer Settings = + - * / 关于 退出
关于提示框的设计比较简单,我们只需要在实体类中手写代码就行。
实体类computer
package bzu.aa.medole;import java.io.WriteAbortedException;public class computer {public static double add(double num1,double num2){return num1 + num2;}public static double sub(double num1,double num2){return num1 - num2;}public static double cheng(double num1,double num2){return num1 * num2;}public static double chu(double num1,double num2) throws ArithmeticException{return num1 / num2;}}
MainActivity.java
package com.example.computer;import bzu.aa.medole.*;import android.os.Bundle;import android.app.Activity;import android.app.AlertDialog;import android.view.Menu;import android.view.MenuItem;import android.view.View;import android.view.View.OnClickListener;import android.widget.Button;import android.widget.EditText;import android.widget.TextView;public class MainActivity extends Activity {private EditText op1;private TextView op;private EditText op2;private EditText result;;private Button add;private Button sub;private Button cheng;private Button chu; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); show(); } public void show(){ op1 = (EditText)this.findViewById(R.id.op1); op = (TextView)this.findViewById(R.id.op); op2 = (EditText)this.findViewById(R.id.op2); result = (EditText)this.findViewById(R.id.result); add = (Button)this.findViewById(R.id.add); add.setOnClickListener(new click()); sub = (Button)this.findViewById(R.id.sub); sub.setOnClickListener(new click()); cheng = (Button)this.findViewById(R.id.cheng); cheng.setOnClickListener(new click()); chu = (Button)this.findViewById(R.id.chu); chu.setOnClickListener(new click()); } public class click implements OnClickListener{ public void onClick(View v) { String a = op1.getText().toString(); String b = op2.getText().toString(); double num1 = Double.parseDouble(a); double num2 = Double.parseDouble(b); double num = 0.0; switch(v.getId()){ case R.id.add: op.setText(" + "); num = computer.add(num1,num2); break; case R.id.sub: op.setText(" - "); num = computer.sub(num1,num2); break; case R.id.cheng: op.setText(" * "); num = computer.cheng(num1,num2); break; case R.id.chu: op.setText(" / "); if(num2 == 0){ result.setText("除数不能为0"); }else{num = computer.chu(num1,num2); } break; } if(!(num2 == 0 && op.getText().equals(" / "))){ result.setText(num +""); } } } @Override public boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu; this adds items to the action bar if it is present. getMenuInflater().inflate(R.menu.main, menu); return true; } public boolean onOptionsItemSelected(MenuItem item){ int item_id = item.getItemId(); switch(item_id){ case R.id.about1: AlertDialog.Builder adb = new AlertDialog.Builder(this); adb.setTitle("关于").setMessage("作者\n姓名:郝高明").create().show(); break; case R.id.exit1: MainActivity.this.finish(); break; } return true; }}
按钮的监听事件已经在前面提到过了,这里就重点提一下菜单的监听事件。菜单的监听要重写两个方法,一个是public boolean onCreateOptionsMenu(Menu menu){},还有一个是public boolean onOptionsItemSelected(MenuItem item){},这两个方法是必不可少的,onCreateOptionsMenu()方法是获取菜单的布局的方法,就像我们要获取Acivity的布局所用到的protected void onCreate(Bundle savedInstanceState){}方法是一样的;onOptionsItemSelected()通过这个方法,我们就可以监听菜单的事件,通过获取id,判断所取得id值,就可以实现相应的操作。
提示框的运用就是先创建一个AlertDialog的实例,传参当前Activity对象,通过实例调用.setTitle()、.setMessage()、.create()、.show()等方法,这样就可以显示一个简单的提示框了。
当然你可以把它做的更“美丽”一点,加油!
更多相关文章
- Android应用开发笔记(7):构建自己的Android账户与内容同步机制,例
- Android(安卓)屏蔽Power键 Home键
- Android(安卓)获取所有联系人(两种方法)
- Android中广告渠道SDK接入方法
- Android(安卓)8.0 以上获取设备序列号, Android(安卓)4.4 - Andro
- Android(安卓)ViewPager 如何判断当前页面是从前一页还是后一页
- Android(安卓)开发者 for Flutter (2)如何布局? XML layout 文件跑
- Android闹钟拓展版【安卓闹钟可换壁纸版】
- Android打造通用的下拉刷新组件