Android中使用GridLayout网格布局来制作简单的计算器App

2019-12-10 18:13:26王冬梅
package com.android.xiong.gridlayoutTest; 
 
import java.math.BigDecimal; 
 
public enum Counts { 
  ADD, MINUS, MULTIPLY, DIVIDE, MARK, ROOT; 
  public String Values(String num1, String num2) { 
    BigDecimal number1 = new BigDecimal(num1); 
    BigDecimal number2 = new BigDecimal(num2); 
    BigDecimal number = BigDecimal.valueOf(0); 
    switch (this) { 
    case ADD: 
      number = number1.add(number2); 
      break; 
    case MINUS: 
      number = number1.subtract(number2); 
      break; 
    case MULTIPLY: 
      number = number1.multiply(number2); 
      break; 
    case DIVIDE: 
      number = number1.divide(number2,20,BigDecimal.ROUND_UP); 
      break; 
 
    } 
    return number.stripTrailingZeros().toString(); 
 
  } 
 
} 

 

<GridLayout xmlns:android="http://www.easck.com/apk/res/android" 
  xmlns:tools="http://www.easck.com/tools" 
  android:layout_width="match_parent" 
  android:layout_height="wrap_content" 
  android:layout_marginTop="40px" 
  android:columnCount="5" 
  android:rowCount="6" 
  tools:context=".MainActivity" > 
 
  <EditText 
    android:id="@+id/print" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:layout_columnSpan="5" 
    android:layout_marginLeft="2px" 
    android:layout_marginRight="2px" 
    android:layout_row="0" 
    android:background="#eee" /> 
 
  <Button 
    android:id="@+id/cleargo" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_column="0" 
    android:layout_row="1" 
    android:text="《--" /> 
 
  <Button 
    android:id="@+id/clear" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_column="3" 
    android:layout_columnSpan="2" 
    android:layout_row="1" 
    android:layout_gravity="fill_horizontal" 
    android:text="清屏" /> 
 
  <Button 
    android:id="@+id/chars" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_column="1" 
    android:layout_row="1" 
    android:text="-/+" /> 
 
  <Button 
    android:id="@+id/charx" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_column="2" 
    android:layout_row="1" 
    android:text="1/x" /> 
 
  <Button 
    android:id="@+id/txt7" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_column="0" 
    android:layout_row="2" 
    android:text="7" /> 
 
  <Button 
    android:id="@+id/txt8" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_column="1" 
    android:layout_row="2" 
    android:text="8" /> 
 
  <Button 
    android:id="@+id/txt9" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_column="2" 
    android:layout_row="2" 
    android:text="9" /> 
 
  <Button 
    android:id="@+id/txtdivide" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_column="3" 
    android:layout_row="2" 
    android:text="÷" /> 
 
  <Button 
    android:id="@+id/txtb" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_column="4" 
    android:layout_row="2" 
    android:text="%" /> 
 
  <Button 
    android:id="@+id/txt4" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_column="0" 
    android:layout_row="3" 
    android:text="4" /> 
 
  <Button 
    android:id="@+id/txt5" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_column="1" 
    android:layout_row="3" 
    android:text="5" /> 
 
  <Button 
    android:id="@+id/txt6" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_column="2" 
    android:layout_row="3" 
    android:text="6" /> 
 
  <Button 
    android:id="@+id/txtx" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_column="3" 
    android:layout_row="3" 
    android:text="X" /> 
 
  <Button 
    android:id="@+id/txtv" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_column="4" 
    android:layout_row="3" 
    android:text="√" /> 
 
  <Button 
    android:id="@+id/txt1" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_column="0" 
    android:layout_row="4" 
    android:text="1" /> 
 
  <Button 
    android:id="@+id/txt2" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_column="1" 
    android:layout_row="4" 
    android:text="2" /> 
 
  <Button 
    android:id="@+id/txt3" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_column="2" 
    android:layout_row="4" 
    android:text="3" /> 
 
  <Button 
    android:id="@+id/txtmin" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_column="3" 
    android:layout_row="4" 
    android:text="-" /> 
 
  <Button 
    android:id="@+id/txteq" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_column="4" 
    android:layout_gravity="fill_vertical" 
    android:layout_row="4" 
    android:layout_rowSpan="2" 
    android:text="=" /> 
 
  <Button 
    android:id="@+id/txt0" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_column="0" 
    android:layout_columnSpan="2" 
    android:layout_gravity="fill_horizontal" 
    android:layout_row="5" 
    android:text="0" /> 
 
  <Button 
    android:id="@+id/txtspl" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_column="2" 
    android:layout_row="5" 
    android:text="." /> 
 
  <Button 
    android:id="@+id/txttakesum" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_column="3" 
    android:layout_row="5" 
    android:text="+" /> 
 
</GridLayout>