安卓的第二堂课

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

示例图:

安卓的第二堂课

代码实现:

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;



       }



    }



 



 



}

 源码下载:下载

你可能感兴趣的:(安卓)