Android简易计算器(破烂Alpha版,后续更新)

界面布局如下:

activity_main.xml

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    xmlns:tools="http://schemas.android.com/tools"    android:layout_width="match_parent"    android:layout_height="match_parent"    android:orientation="vertical"    android:paddingBottom="@dimen/activity_vertical_margin"    android:paddingLeft="@dimen/activity_horizontal_margin"    android:paddingRight="@dimen/activity_horizontal_margin"    android:paddingTop="@dimen/activity_vertical_margin"    tools:context=".MainActivity" >    <TextView        android:id="@+id/textView"        android:layout_width="match_parent"        android:layout_height="wrap_content"        android:gravity="right"        android:background="#000000"        android:textColor="#ffffff"        android:textAppearance="?android:attr/textAppearanceLarge"        />    <TableLayout         android:layout_width="match_parent"        android:layout_height="wrap_content"        android:layout_weight="1" >        <TableRow            android:layout_width="match_parent"            android:layout_height="wrap_content" >            <Button                 android:id="@+id/btn1"                android:layout_width="wrap_content"                android:layout_height="wrap_content"                android:layout_weight="1"                android:text="1"                />            <Button                android:id="@+id/btn2"                 android:layout_width="wrap_content"                android:layout_height="wrap_content"                android:layout_weight="1"                android:text="2"                />            <Button                android:id="@+id/btn3"                 android:layout_width="wrap_content"                android:layout_height="wrap_content"                android:layout_weight="1"                android:text="3"                />            <Button                 android:id="@+id/btnAdd"                android:layout_width="wrap_content"                android:layout_height="wrap_content"                android:layout_weight="1"                android:text="+"                />        TableRow>        <TableRow            android:layout_width="match_parent"            android:layout_height="wrap_content" >            <Button                android:id="@+id/btn4"                 android:layout_width="wrap_content"                android:layout_height="wrap_content"                android:layout_weight="1"                android:text="4"                />            <Button                 android:id="@+id/btn5"                android:layout_width="wrap_content"                android:layout_height="wrap_content"                android:layout_weight="1"                android:text="5"                />            <Button                 android:id="@+id/btn6"                android:layout_width="wrap_content"                android:layout_height="wrap_content"                android:layout_weight="1"                android:text="6"                />            <Button                android:id="@+id/btnSub"                 android:layout_width="wrap_content"                android:layout_height="wrap_content"                android:layout_weight="1"                android:text="-"                />        TableRow>        <TableRow            android:layout_width="match_parent"            android:layout_height="wrap_content" >            <Button                 android:id="@+id/btn7"                android:layout_width="wrap_content"                android:layout_height="wrap_content"                android:layout_weight="1"                android:text="7"                />            <Button                 android:id="@+id/btn8"                android:layout_width="wrap_content"                android:layout_height="wrap_content"                android:layout_weight="1"                android:text="8"                />            <Button                 android:id="@+id/btn9"                android:layout_width="wrap_content"                android:layout_height="wrap_content"                android:layout_weight="1"                android:text="9"                />            <Button                 android:id="@+id/btnMul"                android:layout_width="wrap_content"                android:layout_height="wrap_content"                android:layout_weight="1"                android:text="*"                />        TableRow>        <TableRow            android:layout_width="match_parent"            android:layout_height="wrap_content" >            <Button                 android:id="@+id/btnClear"                android:layout_width="wrap_content"                android:layout_height="wrap_content"                android:layout_weight="1"                android:text="C"                />            <Button                 android:id="@+id/btn0"                android:layout_width="wrap_content"                android:layout_height="wrap_content"                android:layout_weight="1"                android:text="0"                />            <Button                 android:id="@+id/btnResult"                android:layout_width="wrap_content"                android:layout_height="wrap_content"                android:layout_weight="1"                android:text="="                />            <Button                 android:id="@+id/btnDiv"                android:layout_width="wrap_content"                android:layout_height="wrap_content"                android:layout_weight="1"                android:text="/"                />        TableRow>    TableLayout>LinearLayout>
自定义操作资源类:

Type.java

public class Type {    public static final int ADD = 1;    public static final int SUB = 2;    public static final int MUL = 3;    public static final int DIV = 4;    public static final int NUM = 5;}

Item.java

public class Item {    public Item(double value, int type) {        this.value = value;        this.type = type;    }    public double value = 0;    public int type = 0;}
主Activity类业务操作如下:

MainActivity.java

public class MainActivity extends Activity implements OnClickListener{    private TextView textView;    private List items = new ArrayList();    private boolean judgeClear = false;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        textView = (TextView) findViewById(R.id.textView);        findViewById(R.id.btn0).setOnClickListener(this);        findViewById(R.id.btn1).setOnClickListener(this);        findViewById(R.id.btn2).setOnClickListener(this);        findViewById(R.id.btn3).setOnClickListener(this);        findViewById(R.id.btn4).setOnClickListener(this);        findViewById(R.id.btn5).setOnClickListener(this);        findViewById(R.id.btn6).setOnClickListener(this);        findViewById(R.id.btn7).setOnClickListener(this);        findViewById(R.id.btn8).setOnClickListener(this);        findViewById(R.id.btn9).setOnClickListener(this);        findViewById(R.id.btnAdd).setOnClickListener(this);        findViewById(R.id.btnSub).setOnClickListener(this);        findViewById(R.id.btnMul).setOnClickListener(this);        findViewById(R.id.btnDiv).setOnClickListener(this);        findViewById(R.id.btnResult).setOnClickListener(this);        findViewById(R.id.btnClear).setOnClickListener(this);    }    @Override    public void onClick(View v) {        switch (v.getId()) {        case R.id.btn0:            if(judgeClear) {                textView.setText("");                judgeClear = false;            }            textView.append("0");            break;        case R.id.btn1:            if(judgeClear) {                textView.setText("");                judgeClear = false;            }            textView.append("1");            break;        case R.id.btn2:            if(judgeClear) {                textView.setText("");                judgeClear = false;            }            textView.append("2");            break;        case R.id.btn3:            if(judgeClear) {                textView.setText("");                judgeClear = false;            }            textView.append("3");            break;        case R.id.btn4:            if(judgeClear) {                textView.setText("");                judgeClear = false;            }            textView.append("4");            break;        case R.id.btn5:            if(judgeClear) {                textView.setText("");                judgeClear = false;            }            textView.append("5");            break;        case R.id.btn6:            if(judgeClear) {                textView.setText("");                judgeClear = false;            }            textView.append("6");            break;        case R.id.btn7:            if(judgeClear) {                textView.setText("");                judgeClear = false;            }            textView.append("7");            break;        case R.id.btn8:            if(judgeClear) {                textView.setText("");                judgeClear = false;            }            textView.append("8");            break;        case R.id.btn9:            if(judgeClear) {                textView.setText("");                judgeClear = false;            }            textView.append("9");            break;        case R.id.btnAdd:            items.add(new Item(Double.parseDouble(textView.getText().toString()),                     Type.NUM));            checkAndCompute();            items.add(new Item(0, Type.ADD));            textView.setText("");            break;        case R.id.btnSub:            items.add(new Item(Double.parseDouble(textView.getText().toString()),                     Type.NUM));            checkAndCompute();            items.add(new Item(0, Type.SUB));            textView.setText("");            break;        case R.id.btnMul:            items.add(new Item(Double.parseDouble(textView.getText().toString()),                     Type.NUM));            checkAndCompute();            items.add(new Item(0, Type.MUL));            textView.setText("");            break;        case R.id.btnDiv:            items.add(new Item(Double.parseDouble(textView.getText().toString()),                     Type.NUM));            checkAndCompute();            items.add(new Item(0, Type.DIV));            textView.setText("");            break;        case R.id.btnResult:            items.add(new Item(Double.parseDouble(textView.getText().toString()),                     Type.NUM));            checkAndCompute();            textView.setText(items.get(0).value + "");            items.clear();            judgeClear = true;            break;        case R.id.btnClear:            textView.setText("");            items.clear();            judgeClear = false;            break;        }            }    public void checkAndCompute() {        if(items.size() >= 3) {            double a = items.get(0).value;            double b = items.get(2).value;            int opt = items.get(1).type;            items.clear();            switch (opt) {            case Type.ADD:                items.add(new Item(a+b, Type.NUM));                break;            case Type.SUB:                items.add(new Item(a-b, Type.NUM));                break;            case Type.MUL:                items.add(new Item(a*b, Type.NUM));                break;            case Type.DIV:                items.add(new Item(a/b, Type.NUM));                break;            }        }    }}

更多相关文章

  1. Android 文件及文件夹操作
  2. android中 sqlite sql操作
  3. android中使用SQLite进行CRUD操作的实例
  4. Android网络操作
  5. android之简单的计算器样式界面
  6. Android简单计算器界面实现
  7. Android Studio计算器 app

随机推荐

  1. android 监听软键盘 回车键
  2. Android中3D gallary的实现
  3. Android保持背光常亮的设置方法
  4. Android之OenGL ES 之 EGL
  5. android clipPath切割画布
  6. Android(安卓)-- 倒计时Button的实现
  7. Android中SeekBar进度条操作
  8. 浅析android下如何通过jni监控wifi网络连
  9. android 动态布局setLayoutParams方法设
  10. android 开发之Activity切换