一、try...catch...finally错误处理:
package com.wwtiot.ozee5;
import android.app.Activity;
import android.os.Bundle;
import android.view.Menu;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
import android.widget.Toast;
public class Main extends Activity {
private EditText textX,textY;
private TextView textResult;
private Button btnCaculate;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
//从资源文件夹中获得界面组件
textX=(EditText)findViewById(R.id.textX);
textY=(EditText)findViewById(R.id.textY);
textResult=(TextView)findViewById(R.id.textResult);
btnCaculate = (Button) findViewById(R.id.btnCaculate);
//设置Button的Listener
btnCaculate.setOnClickListener(myListener);
}
private Button.OnClickListener myListener = new Button.OnClickListener(){
@Override
public void onClick(View v) {
try{
int x = Integer.parseInt(textX.getText().toString());
int y = Integer.parseInt(textY.getText().toString());
int result = x/y;
textResult.setText(x+"/"+y+"="+result);
}catch(NumberFormatException e){
Toast.makeText(getApplicationContext(), "发生输入非数值的错误!", Toast.LENGTH_SHORT).show();
}catch(Exception e){
Toast.makeText(getApplicationContext(), "发生其它的错误!包括分母为0的错误!\n\r错误信息:"+e.toString(), Toast.LENGTH_SHORT).show();
}finally{
Toast.makeText(getApplicationContext(), "finally中总会执行!", Toast.LENGTH_SHORT).show();
}
}
};
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
}
二、Log-日志文件的使用:
Log日志文件的格式如下:
Log.方法(标签,输出消息);
可用的方法有“verbose”、“debug”、“info”、“warn”、“error”5种
例如:
Private static final String TAG="myLog"
在LogCat中,可以通过标签TAG,定位来找出所需的Log信息!
Log.d(TAG,“onStart()方法开始运行了!”);
Log.d(TAG,“onStart()方法开始运行了!”)语句将“onStart()”字符串输出至“myLog”的标签中!
二、日志文件的查看:
1、启动“调试模式”模拟器:
在项目名称上右键单击,选择Debug As/Android Application
2、打开Debug调试窗口:
3、选择Log的种类为“debug”,查看Log.d的输出信息,通常可以使用标签名称来筛选,只获取想要的信息。如此处的TAG(即“myLog”):
(1)点击Logcat标题栏上的“+”图标,来新增一个Log Filter窗口:
(2)Filter中输入自定义的日志名称log1;
by Log Tag输入标签名称“myLog”,表示要获取所有标签名称为“myLog”的输出消息;
在by Log Level中选择“debug”查看Log.d的输出消息;
三、断点:
所谓断点,就是在程序的关键处加入停止点,当程序执行到该处时会暂停,对程序调试非常有帮助。
Main.java
package com.wwtiot.ozee7;
import android.app.Activity;
import android.os.Bundle;
import android.view.Menu;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
public class Main extends Activity {
// 声明全局变量
private EditText editNumber;
private TextView txtSum;
private Button btnDo;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
// 获取资源文件中的界面组件
editNumber = (EditText) findViewById(R.id.editNumber);
txtSum = (TextView) findViewById(R.id.txtSum);
btnDo = (Button) findViewById(R.id.btnDo);
btnDo.setOnClickListener(new Button.OnClickListener() {
@Override
public void onClick(View v) {
int n = Integer.parseInt(editNumber.getText().toString());
int sum = 0;
for (int i = 0; i <= n; i++) {
sum += i;
}
txtSum.setText("总和= " + sum);
}
});
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
}
在上述程序中加入断点进行查看:
(1)在Main.java额的26、32、34行前分别按两下设置断点,然后选择工具栏中的下述图标,执行项目并打开Debug窗口:
程序执行到26行上停止,点击下述调试工具栏中的按钮,让程序继续往下执行:
(2)出现应用程序的界面,在EditText上输入“5”,然后点击计算按钮;
(3)程序停留在第32行的断点上,这时查看Variable窗口可以看到n的值为5。同时也可以看到参数v,也可以将v展开;
(4)点击下述调试工具栏上的单步执行图标(或F6)6次,会发现执行过程,程序在34、35行的for循环中反复执行:
(5)如果想终止调试,回到一般的编辑状态,可以点击下述调试工具栏上的按钮停止调试:
四、程序代码段:
代码段就是将特定功能程序代码添加到界面上,开发者可以将许多常用的功能分门别类整理好,要使用时即可将程序代码轻松插入到编辑文件里的适当位置。
1、快速创建代码段:
(1)选中某一代码片段,点击鼠标右键,在弹出的菜单中点击Add to Snippets;
(2)如果是第一次创建,输入组名,可输入中文;
(3)创建代码段:
2、维护代码段:在上述图中增加删除组或代码段。