• 安卓的第二堂课


    学习安卓编程,第二周,我们学习的是布局的设计,还有一些简单功能的实现,实验课,我们做的是一个简单的计算器:

    示例图:

    代码实现:

    Strings.xml文件代码:

    <?xml version="1.0" encoding="utf-8"?>
    
    <resources>
        <string name="app_name">计算器</string>
    
        <string name="action_settings">Settings</string>
    
        <string name="tvResult"></string>
    
        <string name="btnbackspace">backspace</string>
    
        <string name="btnCE">CE</string>
    
        <string name="btn0">0</string>
    
        <string name="btn1">1</string>
    
        <string name="btn2">2</string>
    
        <string name="btn3">3</string>
    
            <string name="btn4">4</string>
    
        <string name="btn5">5</string>
    
        <string name="btn6">6</string>
    
             <string name="btn7">7</string>
    
        <string name="btn8">8</string>
    
        <string name="btn9">9</string>
    
          <string name="btnC">C</string>
    
            <string name="btnEqu">=</string>
    
           <string name="btnAdd">+</string>
    
            <string name="btnSub">-</string>
    
            <string name="btnMul">*</string>
    
            <string name="btnDiv">/</string>
    
    </resources>

    布局文件mian.xml代码:

    <?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>

    业务逻辑实现的代码MainActivity.java文件:

    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;
    
           }
    
        }
    
     
    
     
    
    }

     源码下载:下载

    作者:Elaine
    交流QQ:392989505
  • 相关阅读:
    0626 Django模型(ORM)
    0625 Django 基础
    0530JavaScript基础2
    CentOS7.5安装cairo-dock,比mac托盘还美
    CentOS7.5安装与使用mysql-workbench
    CentOS7.6安装rime輸入法
    CentOS7.5 firefox Flash插件更新
    记一次ceph集群的严重故障
    ceph笔记(一)
    CentOS7.6打开的程序窗口居中
  • 原文地址:https://www.cnblogs.com/ITGirl00/p/3319862.html
Copyright © 2020-2023  润新知