首页 > 代码库 > 仿小米简约calendar

仿小米简约calendar

上个星期的时候,我想教我朋友做一个简单的app。想来想去教什么比较好,当时看见小米的计算器觉得比较漂亮,就想这个简单!然后就开始动手做了。我以为可以一个小时可以搞定,没想到花了快一天的时间。哎!突然想起以前公司的CTO的话,一切都是从简单开始的。



我自己的思路是:将计算器的item分为:integer,float,运算符,用list去存储。然后我通过标记上一次输入的标记,判断它是否该插入list还是拿到last修改。然后根据先遍历高级运算,得到结果,将i-1设置为得到的结果,移除i+1,i。最后得到list(0)就是所需要的结果。当然,肯定需要很多判断之类,因为demo的原因,我没有再去改善它。因为这个毕竟是我个人思路,如果有哪位朋友有更好的想法,可以给我留言。


1.输入的model

package com.example.calculator;

public class InputItem {
	
	private String input;
	private int type;
	
	
	
	public InputItem() {
		super();
	}
	public InputItem(String input, int type) {
		super();
		this.input = input;
		this.type = type;
	}
	public String getInput() {
		return input;
	}
	public void setInput(String input) {
		this.input = input;
	}
	public int getType() {
		return type;
	}
	public void setType(int type) {
		this.type = type;
	}
	
	interface InputType {
		public static final int INT_TYPE = 0; //int 类型
		public static final int DOUBLE_TYPE=1; //double 类型
		public static final int OPERATOR_TYPE = 2; //操作符类型
		public static final int ERROR = 3; //操作符类型
	}

	@Override
	public String toString() {
		return "InputItem [input=" + input + ", type=" + type + "]";
	}
	

}


2.逻辑运算

package com.example.calculator;

import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;

import com.example.calculator.InputItem.InputType;

import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.annotation.SuppressLint;
import android.app.Activity;

import android.view.View;
import android.view.View.OnClickListener;
import android.view.animation.Animation;
import android.view.animation.AnimationUtils;
import android.widget.Button;
import android.widget.TextView;

public class MainActivity extends Activity implements OnClickListener{
	
	private TextView mShowResultTv;  //显示结果
	private TextView mShowInputTv;   //显示输入的字符
	private Button mCBtn;
	private Button mDelBtn;
	private Button mAddBtn;
	private Button mSubBtn;
	private Button mMultiplyBtn;
	private Button mDividebtn;
	private Button mZeroButton;
	private Button mOnebtn;
	private Button mTwoBtn;
	private Button mThreeBtn;
	private Button mFourBtn;
	private Button mFiveBtn;
	private Button mSixBtn;
	private Button mSevenBtn;
	private Button mEightBtn;
	private Button mNineBtn;
	private Button mPointtn;
	private Button mEqualBtn;
	private HashMap<View,String> map; //将View和String映射起来 
	private List<InputItem> mInputList; //定义记录每次输入的数
	private int mLastInputstatus = INPUT_NUMBER; //记录上一次输入状态
	public static final int INPUT_NUMBER = 1; 
	public static final int INPUT_POINT = 0;
	public static final int INPUT_OPERATOR = -1;
	public static final int END = -2;
	public static final int ERROR= -3;
	public static final int SHOW_RESULT_DATA = http://www.mamicode.com/1;>

我已上传:http://download.csdn.net/detail/huangyanbin123/7842923



仿小米简约calendar