Android学习笔记(8)---在MyEclipse中用debug调试应用程序

          

       说来惭愧,本人虽然用MyEclipse已经相当熟练,却从来都不会用debug调试应用程序。Debug可是说是MyEclipse中一个相当重要的功能,今天就来说说在MyEclipse中怎么用debug功能调试程序。


        Debug中常用的3个快捷键是F5、F6、F7,这3个快捷键的意思是:


       ●F5:在MyEclipse切换到debug视图时图标为,为单步测试,作用是跳入,比如说一大步中分为10小步,单击F5一次就会走完一小步,走完这一大步则需要单步10次。


       ●F6:在MyEclipse切换到debug视图时图标为,与F5一样也是单步测试。只不过与F5不同的是F5追求的是过程,而F6追求的是结果。如果一大步中分为10小步,单击F6一次就可以得到最后一步的结果.


       ●F7:在MyEclipse切换到debug视图时图标为,作用是跳出函数。比如当我们调试时进入了某个jar包中的类,我们可以单击F7跳出此类。


       下面开始学习dedug旅程。


       首先做一个有bug的加法计算器,界面如下所示:


Android学习笔记(8)---在MyEclipse中用debug调试应用程序_第1张图片


      代码清单如下所示:


      ●Strings.xml中的代码如下所示:


<?xml version="1.0"encoding="utf-8"?>
<resources>
    <string name="app_name">Debug测试</string>
    <string name="add">+</string>
    <string name="equ">=</string>
    <string name="call">计算</string>
</resources>


 

     ● Main.xml中的代码如下所示:


<?xml version="1.0"encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="horizontal" >
   
    <EditText
        android:id="@+id/num1"
        android:layout_width="50px"
        android:layout_height="wrap_content"
        android:numeric="decimal">
 
        <requestFocus />
 
    </EditText>
 
    <TextView
       android:layout_width="wrap_content"
       android:layout_height="wrap_content"
       android:text="@string/add"
     />
 
    <EditText
       android:id="@+id/num2"
       android:layout_width="50px"
       android:numeric="decimal"
       android:layout_height="wrap_content"/>
   
    <TextView
       android:layout_width="wrap_content"
       android:layout_height="wrap_content"
       android:text="@string/equ" />
 
    <EditText
       android:id="@+id/result"
       android:layout_width="50px"
       android:focusable="false"
       android:layout_height="wrap_content"/>
 
    <Button
       android:id="@+id/callButton"
       android:layout_width="wrap_content"
       android:layout_height="wrap_content"
       android:text="@string/call" />
 
</LinearLayout>


 

      ●Activity类中的代码如下所示:


packagecom.yqsn.test;
 
importandroid.app.Activity;
importandroid.os.Bundle;
importandroid.view.View;
importandroid.widget.Button;
importandroid.widget.EditText;
importandroid.widget.TextView;
 
public classTestDebugActivity extends Activity {
    /** Called when the activity is firstcreated. */
       private EditText numText1;
       private EditText numText2;
       private TextView sumText;
       private Button callButton;
    @Override
    public void onCreate(BundlesavedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        numText1=(EditText)findViewById(R.id.num1);
        numText2=(EditText)findViewById(R.id.num2);
        callButton=(Button)findViewById(R.id.callButton);
        callButton.setOnClickListener(newView.OnClickListener() {
                    
                     @Override
                     public void onClick(View v){
                            // TODOAuto-generated method stub
                            StringnumText1Str=numText1.getText().toString();
                            StringnumText2Str=numText2.getText().toString();
                            float result=Float.parseFloat(numText1Str)+Float.parseFloat(numText2Str);
                            sumText.setText(""+result);
                     }
              });
    }
}


 

       运行此计算器,界面如上所示,当我们输入数值后单击“计算”后出现bug了,如下所示:


Android学习笔记(8)---在MyEclipse中用debug调试应用程序_第2张图片


        我们分析可以看出我们是在输入数值点击“计算”按钮后出现问题的,分析代码,我们可以猜想出可能是我们在方法在中执行“单击侦听器”即setOnClickListener()方法时出错了。


      我们在程序中String numText1Str=numText1.getText().toString();此行打断点。然后对着项目右键选择Debug As--> Android Application


Android学习笔记(8)---在MyEclipse中用debug调试应用程序_第3张图片


       然后当程序在android模拟器中运行起来后输入数值点击“计算”按钮后会自动切换到MyEclipse,弹出如下所示的对话框:


Android学习笔记(8)---在MyEclipse中用debug调试应用程序_第4张图片


       点击“Yes”MyEclipse将自动切换到debug视图并且光标在打断点的那一行,我们对着numText1Str变量双击,然后单击右键,选择Wath,如下所示:


Android学习笔记(8)---在MyEclipse中用debug调试应用程序_第5张图片


        然后我们会在右上方的Expressions中看到刚才单击的那个变量。numText2Str,result,sumText进行相同的操作。


        接下来让光标回到打断点的那一行,先单击F5,在单击F6,那么背景为绿色的则跳转到下一行,稍等片刻,我们在看看Expressions里的numText1Str列出了我们输入的数值。对另外3个进行相同的操作,我们可以看出sumText的值为null


Android学习笔记(8)---在MyEclipse中用debug调试应用程序_第6张图片


       可以看出我们没有为sumText对象赋值。解决的办法是在程序中加入一句:

                    sumText=(TextView) findViewById(R.id.result);

      就可以,不用debug模式运行程序,当我们输入数值后可以计算得到结果了:


Android学习笔记(8)---在MyEclipse中用debug调试应用程序_第7张图片


         就这样我们用debug解决了一个问题,我想我以后会用debug调试程序了,嘿…


          这是本人学习的结果,欢迎转载,欢迎交流,但转载务必给出本文章的链接地址:http://blog.csdn.net/youqishini/article/details/7462719,谢谢~






你可能感兴趣的:(android,MyEclipse,String,layout,button,encoding)