android caculator

原创 2015年07月10日 11:33:47

还只是个架子,没实现算术计算

mail.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:background="#FFFFFF"
    tools:context=".MainActivity" >

    <LinearLayout
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal" >
        <EditText
            android:id="@+id/txtMsg"
            android:inputType="number"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:text="">
        </EditText>    
    </LinearLayout>
    
    <LinearLayout
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal" >
     	<Button
     		android:id="@+id/btnmc"
     	    android:layout_width="fill_parent"
     	    android:layout_height="wrap_content"
     	    android:text="mc" android:layout_weight="1">
     	</Button>
     	<Button
     		android:id="@+id/btnmp"
     	    android:layout_width="fill_parent"
     	    android:layout_height="wrap_content"
     	    android:text="m+" android:layout_weight="1">
     	</Button>
     	<Button
     		android:id="@+id/btnmm"
     	    android:layout_width="fill_parent"
     	    android:layout_height="wrap_content"
     	    android:text="m-" android:layout_weight="1">
     	</Button>
     	<Button
     		android:id="@+id/btnmr"
     	    android:layout_width="fill_parent"
     	    android:layout_height="wrap_content"
     	    android:text="mr" android:layout_weight="1">
     	</Button>
  </LinearLayout>
    
      <LinearLayout
          android:layout_width="fill_parent"
          android:layout_height="wrap_content"
          android:orientation="horizontal" >
          <Button
     		android:id="@+id/btnClear"
              android:layout_width="fill_parent"
              android:layout_height="wrap_content"
              android:layout_weight="1"
              android:text="C" >
          </Button>
          <Button
     		android:id="@+id/btnpOrm"
              android:layout_width="fill_parent"
              android:layout_height="wrap_content"
              android:layout_weight="1"
              android:text="+/-" >
          </Button>
          <Button
     		android:id="@+id/btnDevide"
              android:layout_width="fill_parent"
              android:layout_height="wrap_content"
              android:layout_weight="1"
              android:text="/" >
          </Button>
          <Button
     		android:id="@+id/btnAnd"
              android:layout_width="fill_parent"
              android:layout_height="wrap_content"
              android:layout_weight="1"
              android:text="*" >
          </Button>
      </LinearLayout>
    
      <LinearLayout
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal" >
     	<Button
     		android:id="@+id/btnSeven"
     	    android:layout_width="fill_parent"
     	    android:layout_height="wrap_content"
     	    android:text="7" android:layout_weight="1">
     	</Button>
     	<Button     	
     		android:id="@+id/btnEight"
     	    android:layout_width="fill_parent"
     	    android:layout_height="wrap_content"
     	    android:text="8" android:layout_weight="1">
     	</Button>
     	<Button
     		android:id="@+id/btnNine"
     	    android:layout_width="fill_parent"
     	    android:layout_height="wrap_content"
     	    android:text="9" android:layout_weight="1">
     	</Button>
     	<Button
     		android:id="@+id/btnMinus"
     	    android:layout_width="fill_parent"
     	    android:layout_height="wrap_content"
     	    android:text="-" android:layout_weight="1">
     	</Button>
  </LinearLayout>
  
    <LinearLayout
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal" >
        <Button
     		android:id="@+id/btnFour"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:text="4" >
        </Button>
        <Button
     		android:id="@+id/btnFive"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:text="5" >
        </Button>
        <Button
     		android:id="@+id/btnSix"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:text="6" >
        </Button>
        <Button
     		android:id="@+id/btnPlus"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:text="+" >
        </Button>
    </LinearLayout>
    
     <LinearLayout android:orientation="horizontal"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content">

        <LinearLayout android:orientation="vertical"
        	android:layout_weight="3"
        	android:layout_width="wrap_content"
        	android:layout_height="wrap_content">

     		<LinearLayout android:orientation="horizontal"
        		android:layout_width="fill_parent"
        		android:layout_height="wrap_content">
        		<Button
     		android:id="@+id/btnOne"
        		    android:layout_width="wrap_content"
        		    android:layout_height="wrap_content"
        		    android:layout_weight="1"
        		    android:text="1"></Button>
        		<Button
     		android:id="@+id/btnTwo"
        		    android:layout_width="wrap_content"
        		    android:layout_height="wrap_content"
        		    android:layout_weight="1"
        		    android:text="2"></Button>
        		<Button
     		android:id="@+id/btnThree"
        		    android:layout_width="wrap_content"
        		    android:layout_height="wrap_content"
        		    android:layout_weight="1"
        		    android:text="3"></Button>
     		</LinearLayout>
      
     		<LinearLayout android:orientation="horizontal"
        		android:layout_width="fill_parent"
        		android:layout_height="wrap_content">
        		<Button
     		android:id="@+id/btnZero"
        		    android:layout_width="0px"
        		    android:layout_height="wrap_content"
        		    android:layout_weight="2"
        		    android:text="0"></Button>
        		<Button
     		android:id="@+id/btnDot"
        		    android:layout_width="0px"
        		    android:layout_height="wrap_content"
        		    android:layout_weight="1"
        		    android:text="."></Button>
        	</LinearLayout>	
     	</LinearLayout>
    
    <LinearLayout android:orientation="vertical"
        android:layout_weight="1"
        	android:layout_width="wrap_content"
        	android:layout_height="fill_parent">
     		<Button
     		android:id="@+id/btnEqual"
     		    android:layout_width="fill_parent"
     		    android:layout_height="fill_parent"
        android:text="="></Button>
      </LinearLayout>
     </LinearLayout>   

</LinearLayout>



MyActivity.java


package test.my;

import java.lang.reflect.Field;
import java.util.ArrayList;
import java.util.List;

import android.app.Activity;
import android.os.Bundle;
import android.text.InputType;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
import android.widget.Toast;

public class MyActivity extends Activity {
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        
        try {
			setClickListener();
		} catch (IllegalArgumentException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (IllegalAccessException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
    }
    
    public void setClickListener() throws IllegalArgumentException, IllegalAccessException{
        Field[] fields = R.id.class.getDeclaredFields();
        
		for(Field f: fields){
			View v = findViewById(f.getInt(R.id.class));
			
			if(f.getName().startsWith("btn")){
	        	v.setOnClickListener(new MyButtonClickListener());
	        	
			} else if(f.getName().startsWith("txt")){
				((EditText)v).setInputType(InputType.TYPE_NULL);
				
			}
		}

    }
    
    public class MyButtonClickListener implements OnClickListener{
    	public void onClick(View v){    		
    		Button btn = (Button)v;
    		EditText et = (EditText)findViewById(R.id.txtMsg);

    		et.setText(btn.getText());
    		switch(btn.getId()){
				case R.id.btnClear:
					et.setText("");
					break;
					
				default:
					et.setText(btn.getText());
					break;
    		}
    				
    	}
    }
}



R.java


/* AUTO-GENERATED FILE.  DO NOT MODIFY.
 *
 * This class was automatically generated by the
 * aapt tool from the resource data it found.  It
 * should not be modified by hand.
 */

package test.my;

public final class R {
    public static final class attr {
    }
    public static final class drawable {
        public static final int icon=0x7f020000;
    }
    public static final class id {
        public static final int btnAnd=0x7f050008;
        public static final int btnClear=0x7f050005;
        public static final int btnDevide=0x7f050007;
        public static final int btnDot=0x7f050015;
        public static final int btnEight=0x7f05000a;
        public static final int btnEqual=0x7f050016;
        public static final int btnFive=0x7f05000e;
        public static final int btnFour=0x7f05000d;
        public static final int btnMinus=0x7f05000c;
        public static final int btnNine=0x7f05000b;
        public static final int btnOne=0x7f050011;
        public static final int btnPlus=0x7f050010;
        public static final int btnSeven=0x7f050009;
        public static final int btnSix=0x7f05000f;
        public static final int btnThree=0x7f050013;
        public static final int btnTwo=0x7f050012;
        public static final int btnZero=0x7f050014;
        public static final int btnmc=0x7f050001;
        public static final int btnmm=0x7f050003;
        public static final int btnmp=0x7f050002;
        public static final int btnmr=0x7f050004;
        public static final int btnpOrm=0x7f050006;
        public static final int txtMsg=0x7f050000;
    }
    public static final class layout {
        public static final int main=0x7f030000;
    }
    public static final class string {
        public static final int app_name=0x7f040000;
        public static final int hello=0x7f040001;
    }
}



【Android App】Calculator(二)计算过程详细分析

在上一片文章【Android App】Calculator(一)onCreate过程分析
  • WOAI_TT
  • WOAI_TT
  • 2014年09月09日 21:12
  • 1512

android自定义日历

这是一个简单自定义的日历的控件,不过很简洁,有需要的同学可以来下载。模仿miui的日历,支持双向无限切换日历,支持抽屉。支持month和week双模式,支持添加事件(页面实现,功能需自己实现)...
  • huangyanbin123
  • huangyanbin123
  • 2014年08月02日 18:40
  • 9852

Android多行文本折叠展开效果

转自:http://blog.csdn.net/qiaoidea/article/details/45568653 【导航】  - 单行文本水平触摸滑动效果 通过EditText实现TextVie...
  • jdsjlzx
  • jdsjlzx
  • 2015年05月18日 14:18
  • 23673

android中各式各样的进度条,加载进度,太棒了

Progress Wheel为GitHub热门项目,作者是:Todd-Davies,项目地址: https://github.com/Todd-Davies/ProgressWheel ...
  • lanxingfeifei
  • lanxingfeifei
  • 2016年03月07日 17:54
  • 11081

Android多种格式的异步解压/压缩解决方案

Android多种格式的异步解压/压缩解决方案 前言 最近由于项目需要,需要我谅解一下关于在移动平台的解压功能,在移动平台解压,我个人感觉是没有太大必要的,毕竟手机的性能有限。...
  • chenhuakang
  • chenhuakang
  • 2016年12月13日 13:52
  • 3844

Android中利用jxl组件来操作excel

1.支持Excel 95-2000的所有版本,生成Excel 2000标准格式,支持字体、数字、日期操作,能够修饰单元格属性,支持图像和图表, 最关键的是这套API是纯Java的,并不依赖Windo...
  • Afanbaby
  • Afanbaby
  • 2016年09月12日 16:43
  • 3204

Android中三种锁的用法

一、synchronized 略   二、lock Lock是java.util.concurrent.locks包下的接口,Lock 实现提供了比使用synchronized 方法和语句可获...
  • boyupeng
  • boyupeng
  • 2015年09月02日 17:58
  • 6278

android 自定义坐标曲线图

android自定义坐标曲线图
  • chen_zhang_yu
  • chen_zhang_yu
  • 2016年03月11日 22:49
  • 6958

Android实现元素间的分割线 android:divider=""(3.0以上特性)支持3.0以下

1、概述 话说,随着Android SDK版本的升级,很多控件增加了新的属性方便我们的使用,比如LinearLayout中多了:divider、showDividers等,用于为其内部元素添加分...
  • u011127787
  • u011127787
  • 2015年03月04日 14:56
  • 1905

android自定义评分条(RatingBar)

android自定义评分条(RatingBar)本自定义控件是因为本人在开发过程中,评分条的适配出现问题而诞生,在网上找了些自定义控件,发现都不是自己想要的,所以只能自己动手。 原生的Rat...
  • liu_xiong
  • liu_xiong
  • 2017年01月13日 16:19
  • 2590
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:android caculator
举报原因:
原因补充:

(最多只允许输入30个字)