安卓的第二堂课

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

示例图:

代码实现:

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
原文地址:https://www.cnblogs.com/ITGirl00/p/3319862.html