zoukankan      html  css  js  c++  java
  • android实操--练习2

    练习2是实现一个计算器的功能;可以加减乘除;可以倒退,可以清空文本。

    下面是效果展示:

    4

    2

    -----------------------布局-------------------------------

    <?xml version="1.0" encoding="utf-8"?>
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical" >
        
        <LinearLayout android:layout_width="fill_parent"
        android:layout_height="wrap_content">
     <TextView  
         android:id="@+id/tvResult"
         android:layout_width="fill_parent"
         android:layout_height="wrap_content"
         android:height="50dp"
         android:text="@string/tvResult"
         />
    </LinearLayout>
    <LinearLayout android:layout_width="fill_parent"
        android:layout_height="wrap_content">
        <Button
            android:id="@+id/btnBackspace"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:width="150dp"
            android:layout_marginLeft="10dp"
                 android:text="@string/btnbackspace"/>
          <Button
            android:id="@+id/btnCE"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
             android:width="150dp"
                 android:text="@string/btnCE"/>
    </LinearLayout>
    <LinearLayout android:layout_width="fill_parent"
        android:layout_height="wrap_content">
          <Button
            android:id="@+id/btn7"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginLeft="10dp"
             android:width="75dp"
                 android:text="@string/btn7"/>
             <Button
            android:id="@+id/btn8"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
             android:width="75dp"
                 android:text="@string/btn8"/>
                   <Button
            android:id="@+id/btn9"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
             android:width="75dp"
                 android:text="@string/btn9"/>
                         <Button
            android:id="@+id/btnDiv"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
             android:width="75dp"
                 android:text="@string/btnDiv"/>
    </LinearLayout>
    <LinearLayout android:layout_width="fill_parent"
        android:layout_height="wrap_content">
          <Button
            android:id="@+id/btn4"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginLeft="10dp"
             android:width="75dp"
                 android:text="@string/btn4"/>
             <Button
            android:id="@+id/btn5"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
             android:width="75dp"
                 android:text="@string/btn5"/>
                   <Button
            android:id="@+id/btn6"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
             android:width="75dp"
                 android:text="@string/btn6"/>
                         <Button
            android:id="@+id/btnMul"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
             android:width="75dp"
                 android:text="@string/btnMul"/>
    </LinearLayout>
    <LinearLayout android:layout_width="fill_parent"
        android:layout_height="wrap_content">
          <Button
            android:id="@+id/btn1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginLeft="10dp"
             android:width="75dp"
                 android:text="@string/btn1"/>
             <Button
            android:id="@+id/btn2"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
             android:width="75dp"
                 android:text="@string/btn2"/>
                   <Button
            android:id="@+id/btn3"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
             android:width="75dp"
                 android:text="@string/btn3"/>
                         <Button
            android:id="@+id/btnAdd"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
             android:width="75dp"
                 android:text="@string/btnAdd"/>
    </LinearLayout>
    <LinearLayout android:layout_width="fill_parent"
        android:layout_height="wrap_content">
          <Button
            android:id="@+id/btn0"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginLeft="10dp"
             android:width="75dp"
                 android:text="@string/btn0"/>
             <Button
            android:id="@+id/btnC"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
             android:width="75dp"
                 android:text="@string/btnC"/>
                   <Button
            android:id="@+id/btnEqu"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
             android:width="75dp"
                 android:text="@string/btnEqu"/>
                         <Button
            android:id="@+id/btnSub"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
             android:width="75dp"
                 android:text="@string/btnSub"/>
    </LinearLayout>
    </LinearLayout>

    -----------------------功能-------------------------------

    package com.example.week2;
     
    import android.os.Bundle;
    import android.view.View;
    import android.view.View.OnClickListener;
    import android.widget.Button;
    import android.widget.TextView;
    import android.app.Activity;
     
    public class MainActivity extends Activity  implements OnClickListener{
     
        //声明一些控件
        Button btn0=null;
        Button btn1=null;
        Button btn2=null;
        Button btn3=null;
        Button btn4=null;
        Button btn5=null;
        Button btn6=null;
        Button btn7=null;
        Button btn8=null;
        Button btn9=null;
        Button btnBackspace=null;
        Button btnCE=null;
        Button btnC=null;
        Button btnAdd=null;
        Button btnSub=null;
        Button btnMul=null;
        Button btnDiv=null;
        Button btnEqu=null;
        TextView tvResult=null;
        //声明两个参数。接收tvResult前后的值
        double num1=0,num2=0;
        double Result=0;//计算结果
        int op=0;//判断操作数,
        boolean isClickEqu=false;//判断是否按了“=”按钮
        
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.main);
            //从布局文件中获取控件,
            btn0=(Button)findViewById(R.id.btn0);
            btn1=(Button)findViewById(R.id.btn1);
            btn2=(Button)findViewById(R.id.btn2);
            btn3=(Button)findViewById(R.id.btn3);
            btn4=(Button)findViewById(R.id.btn4);
            btn5=(Button)findViewById(R.id.btn5);
            btn6=(Button)findViewById(R.id.btn6);
            btn7=(Button)findViewById(R.id.btn7);
            btn8=(Button)findViewById(R.id.btn8);
            btn9=(Button)findViewById(R.id.btn9);
            btnBackspace=(Button)findViewById(R.id.btnBackspace);
            btnCE=(Button)findViewById(R.id.btnCE);
            btnC=(Button)findViewById(R.id.btnC);
            btnEqu=(Button)findViewById(R.id.btnEqu);
            btnAdd=(Button)findViewById(R.id.btnAdd);
            btnSub=(Button)findViewById(R.id.btnSub);
            btnMul=(Button)findViewById(R.id.btnMul);
            btnDiv=(Button)findViewById(R.id.btnDiv);
            tvResult=(TextView)findViewById(R.id.tvResult);
            
            //添加监听
            btnBackspace.setOnClickListener(this);
            btnCE.setOnClickListener(this);
            
            btn0.setOnClickListener(this);
            btn1.setOnClickListener(this);
            btn2.setOnClickListener(this);
            btn3.setOnClickListener(this);
            btn4.setOnClickListener(this);
            btn5.setOnClickListener(this);
            btn6.setOnClickListener(this);
            btn7.setOnClickListener(this);
            btn8.setOnClickListener(this);
            btn9.setOnClickListener(this);
            
            
            btnAdd.setOnClickListener(this);
            btnSub.setOnClickListener(this);
            btnMul.setOnClickListener(this);
            btnDiv.setOnClickListener(this);
            btnEqu.setOnClickListener(this);
        }
        @Override
        public void onClick(View v) {
            switch (v.getId()) {
            //btnBackspace和CE--------------------
            case R.id.btnBackspace:
                String myStr=tvResult.getText().toString();
                try {
                    tvResult.setText(myStr.substring(0, myStr.length()-1));
                } catch (Exception e) {
                    tvResult.setText("");
                }
                
                break;
            case R.id.btnCE:
                tvResult.setText(null);
                break;
                
                //btn0--9---------------------------
            case R.id.btn0:
                if(isClickEqu)
                {
                    tvResult.setText(null);
                    isClickEqu=false;
                }
                String myString=tvResult.getText().toString();
                myString+="0";
                tvResult.setText(myString);
                break;
            case R.id.btn1:
                if(isClickEqu)
                {
                    tvResult.setText(null);
                    isClickEqu=false;
                }
                String myString1=tvResult.getText().toString();
                myString1+="1";
                tvResult.setText(myString1);
                break;
            case R.id.btn2:
                if(isClickEqu)
                {
                    tvResult.setText(null);
                    isClickEqu=false;
                }
                String myString2=tvResult.getText().toString();
                myString2+="2";
                tvResult.setText(myString2);
                break;
            case R.id.btn3:
                if(isClickEqu)
                {
                    tvResult.setText(null);
                    isClickEqu=false;
                }
                String myString3=tvResult.getText().toString();
                myString3+="3";
                tvResult.setText(myString3);
                break;
            case R.id.btn4:
                if(isClickEqu)
                {
                    tvResult.setText(null);
                    isClickEqu=false;
                }
                String myString4=tvResult.getText().toString();
                myString4+="4";
                tvResult.setText(myString4);
                break;
            case R.id.btn5:
                if(isClickEqu)
                {
                    tvResult.setText(null);
                    isClickEqu=false;
                }
                String myString5=tvResult.getText().toString();
                myString5+="5";
                tvResult.setText(myString5);
                break;
            case R.id.btn6:
                if(isClickEqu)
                {
                    tvResult.setText(null);
                    isClickEqu=false;
                }
                String myString6=tvResult.getText().toString();
                myString6+="6";
                tvResult.setText(myString6);
                break;
            case R.id.btn7:
                if(isClickEqu)
                {
                    tvResult.setText(null);
                    isClickEqu=false;
                }
                String myString7=tvResult.getText().toString();
                myString7+="7";
                tvResult.setText(myString7);
                break;
            case R.id.btn8:
                if(isClickEqu)
                {
                    tvResult.setText(null);
                    isClickEqu=false;
                }
                String myString8=tvResult.getText().toString();
                myString8+="8";
                tvResult.setText(myString8);
                break;
            case R.id.btn9:
                if(isClickEqu)
                {
                    tvResult.setText(null);
                    isClickEqu=false;
                }
                String myString9=tvResult.getText().toString();
                myString9+="9";
                tvResult.setText(myString9);
                break;
                
                //btn+-*/=--------------------------------
            case R.id.btnAdd:            
                String myStringAdd=tvResult.getText().toString();
                if(myStringAdd.equals(null))
                {
                    return;
                }
                num1=Double.valueOf(myStringAdd);
                tvResult.setText(null);
                op=1;
                isClickEqu=false;
                break;
                
            case R.id.btnSub:
                String myStringSub=tvResult.getText().toString();
                if(myStringSub.equals(null))
                {
                    return;
                }
                num1=Double.valueOf(myStringSub);
                tvResult.setText(null);
                op=2;
                isClickEqu=false;
                break;
            case R.id.btnMul:
                String myStringMul=tvResult.getText().toString();
                if(myStringMul.equals(null))
                {
                    return;
                }
                num1=Double.valueOf(myStringMul);
                tvResult.setText(null);
                op=3;
                isClickEqu=false;
                break;
            case R.id.btnDiv:
                String myStringDiv=tvResult.getText().toString();
                if(myStringDiv.equals(null))
                {
                    return;
                }
                num1=Double.valueOf(myStringDiv);
                tvResult.setText(null);
                op=4;
                isClickEqu=false;
                break;
            case R.id.btnEqu:
                String myStringEqu=tvResult.getText().toString();
                if(myStringEqu.equals(null))
                {
                    return;
                }
                num2=Double.valueOf(myStringEqu);
                tvResult.setText(null);
                switch (op) {
                case 0:
                    Result=num2;
                    break;
                case 1:
                    Result=num1+num2;
                    break;
                case 2:
                    Result=num1-num2;
                    break;
                case 3:
                    Result=num1*num2;
                    break;
                case 4:
                    Result=num1/num2;
                    break;
                default:
                    Result=0;
                    break;
                }
                tvResult.setText(String.valueOf(Result));
                isClickEqu=true;
                break;
     
            default:
                break;
            }
        }
     
     
    }
     
     下载
     
     
    Technorati 标签: ,,
    作者:Elaine
    交流QQ:392989505
  • 相关阅读:
    Fiddler localhost问题
    Ajax 'sys'未定义
    将字符串中的危险字符替换掉函数 ReplaceStr()
    如何重新注册asp.net 2.0
    Asp.net CS页面调用Javascript进行Alert输出
    Asp.net中插入Flash
    向awk中传递数组
    内存泄漏简介
    awk基本语法几则
    自然连接和等值连接
  • 原文地址:https://www.cnblogs.com/ITGirl00/p/3504891.html
Copyright © 2011-2022 走看看