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自学笔记(番外篇):全面搭建Linux环境(五)——Eclipse Helios(3.
  2. EditText实时判断输入字符数
  3. Android通过手势实现图像拖拽功能
  4. Android(安卓)dependency ‘androidx.core:core’ has different
  5. android中调用金山词霸
  6. android的文件操作
  7. Android(安卓)5.1截获HOME键
  8. Android(安卓)文件及文件夹操作
  9. android中 sqlite sql操作

随机推荐

  1. Android(安卓)使用PdfDocument生成PDF文
  2. Android(安卓)禁止Edittext弹出系统软键
  3. Android(安卓)imageView图片按比例缩放
  4. ImageView的属性android:scaleType
  5. CMD命令创建、编译Android应用程序
  6. ViewPager实现一个页面多个Item的显示
  7. Android(安卓)VideoPlayer
  8. Android(安卓)开源优秀项目
  9. Android中javax annotation Nullable找不
  10. Android(安卓)studio 运行出现Error runn