zoukankan      html  css  js  c++  java
  • 第一个Android项目——计算器

    第一个Android项目——计算器

    效果

    开始学Android一两个星期了,学习了一下基本的Activity、简单控件及几个简单布局,打算找个东西来练练手,于是就选择发计算器。关于计算器中用到的四则运算在上一篇博客表达式(四则运算)计算的算法中已经讲了。这里不再赘述。

    先看一下要达成的效果图:

    1

     

    这里只用到了一个Activity,EditTextButton两个控件组成,所以比较简单。

    布局

    这里用到了三种布局:

    LinearLayout 一个整体的垂直的线性布局

    有几个属性解释一下:

     android:layout_width="match_parent"  layout宽度,match_parent匹配父控件,在这里就是Activity

     android:layout_height="match_parent"  layoutr 高度

     android:orientation="vertical"  定义为垂直方向

     tools:context=".MainActivity"  对应的Activityjava文件

    RelativeLayout相对布局,用于控制backspaceclear按钮

    android:layout_alignParentTop="true"  与父窗口顶部对齐

    android:layout_toLeftOf="@+id/clear" clear组件的大侧

    android:layout_alignParentRight="true"  与父窗口右端对齐

     

    android:padding="18dip"  组件之前的空隙

    android:gravity="center"  组件中文本的对齐方式

     

    TableLayout  一个4*5的表格布局,用于存放数字和符号按钮

     

    事件监听

    我知道的事件监听有两种方式:

    一种是先获得控件的对象,再通过控件对象设置监听setOnClickListener()如:

    Button backspace = (Button)findViewById(R.id.backspace);

    backspace.setOnClickListener(new OnClickListener() {

    @Override

    public void onClick(View v) {

    // TODO Auto-generated method stub

     

    }

    }

    );

     

    另一种方法是定义一个方法,通过getTag获得控件,然后为多个控件添加监听事件。

    public void onClickTransaction(View v) {

    // backspace and clear

    if ("backspace".equals(v.getTag())) {

    //do something

    } else if ("clear".equals(v.getTag())) {

    //do something

    }

    }

     

    然后在xml文件中对应的控件上设置该监听的函数名

     <Button

          android:onClick="onClickTransaction"

          android:tag="1"

          android:layout_height="fill_parent"

          android:id="@+id/row0col0"

          android:layout_gravity="center_vertical"

          android:gravity="center"

          android:padding="2dip"

          android:text="@string/row0col0" >

    </Button>

     

     

    PS:

    我在做这个项目的时候遇到一个很诡异的问题,大家交流一下。在我做出了整体的布局如上面的图1中的时候,相应的监听也加进去了,监听都没有问题。在加最后一个“=”按钮的监听时就不行了,一点按钮就崩溃,后面把最后一个按钮的监听事件去掉了,还是有问题。找了半天没有找到,叫老师过来用debug找了半个小时也没有找到什么错误。后来我一个同学,帮我一点点地试,发现好像什么id生成错误,后面eclipseproject/clean...清除一下缓存,重新编译一下,一切问题都没有了,运行良好。

    当你遇到一些比较诡异的问题老是解决不了,你也不防试一下eclipseproject/clean清除一下缓存,也许问题就解决了。

     

     

    项目下载:http://download.csdn.net/download/luoweifu/6041661

  • 相关阅读:
    struts-spring 整合
    Spring与Struts2的整合
    three.js 3d 智慧园区
    前端框架理解
    Flutter仿照airbnb创建app
    软件、语言的安装
    python功能
    python创建项目
    安装python
    mysql的安装和使用
  • 原文地址:https://www.cnblogs.com/suncoolcat/p/3294007.html
Copyright © 2011-2022 走看看