一、程序调试:
1.Debug调试(相对复杂问题):
进入Debug模式——>设置断点(三种方式)——>追踪程序:Debug调试快捷键:F5进入方法,F7退出方法,F6逐行调试 F8移动到下一个断点处
2.LogCat调试(相对简单问题)
logCat分log.v, log.d, log.i, log.w, log.e——筛选log日志
3.Toast
1)toast.makeText(this,“显示内容”,toast.LENGTH.SHORT).show();
2)改变位置的toast:toast.setGravity(Gravity.CENTER,xOffset,yOffset);
3)带有图片的toast:
LinearLayout toast_layout = (LinearLayout)toast.getview();
Imageview iv = new Imageview(this);
iv.setImageResource(R.drawable.ii);
toast_layout.addView(iv,0);
toast.show();
4)自定义Toast:
View toast_view = LayoutInflater.from(this).inflate(R.layout.toast_layout,null);
Toast toast = new Toast(this);
toast.setView(toast_view);
toast.show();
4.Dialog对话框
确认对话框、单选按钮对话框、多选按钮对话框、列表对话框
1)确认对话框:
AlertDialog.builder buidler = new AlertDialog.builder();
builder.setTitle("qqq");
builder.setMessage("qqq");
builder.setIcon(R.drawable.icon);
builder.setPositiveButton("确定", new DialogInterface.OnClickListener(){...};
AlertDialog dialog = builder.create();
dialog.show();
2)单选对话框:
String[] single_list = new String[]{"qq","ww"};
builder.setSingleChoiceItems(single_list,0,new DialogInterface.onClickListener(){
public void onClick(DialogInterface dialog, int which){
...}
};
3)多选对话框
String multi_list = new String[]{"1","2",3"};
builder.setMultiChoiceItems(multi_list,null, new DialogInterface.onClickListener(){
public void onClick(DialogInterface dialpg,int which, Boolean isChecked){
if( isChecked ) {...}else
}
4)列表对话框
String[] item_list = new String[]{"q","we"};
builder.setItem( item_list, new ...)
5)自定义对话框
View view = LayoutInflater.from(this).inflate(R.layout,dialog, null);
buidler.setview(view);
5.notification通知栏:
int notification_ID;
NotificationManager manager= getSystemService(Context.NOTIFICATION_SERVICE);// 通知控制类
Intent intent = new Intent(this, MainActivity.class);
PendingIntent pintent = PendingIntent.getActivity(this, 0 ,intent); //延时intent,满足一定条件时执行相应intent
Builder builder = new Notification.Builder(this);
builder.setSmallIcon(R.drawable.ic); // 设置图标
builder.setTicker("hello"); // 手机状态栏的显示
builder.setWhen(System.currentTimeMills()); // 设置时间
builder.setContentTitle(" 通知栏通知“) // 设置标题
builder.setContentText( "我来自NotificationDemo”);// 设置通知内容
builder.setContentIntent( pintent ); // 设置点击后的意图
builder.setDefaults( Notification.DEFAULT_ALL); // 设置震动
Notification notification = builder.build(); //4.1以上 ,如果是以下 写成:notification = builder.getNotification();
manager.notify( notification_ID , notification);
6.OptionsMenu 选择菜单
重写onCreateOptionsMenu( Menu menu){
MenuItem item = menu.add( 1 ,100 ,1 ,"菜单一“); // 参数一groupId, 参数二 ItemId, 参数三为显示顺序, 参数四为显示内容
item.setTitle("aaa");
item.setIcon(R.drawable.ic); // api>= 11 时不显示图标
menu.add(1, 101, 1, "菜单二”);
重写onOptionsItemSelected(MenuItem item){
swich(item.getItemId()){
case 100:
Intent intent = new Intent(A, B);
item.setIntent(intent);
...}
7.ContextMenu菜单
1)ContextMenu与OptionMenu的区别:
OptionMenu对应的是activity,一个activity只能拥有一个选项菜单;
ContextMenu对应的是View,每个View都可以设置上下文菜单;
一般情况下ContextMenu常用于ListView或GridView
2)ContextMenu创建方法:
1).给view注册上下文菜单:this.registerForContextMenu( listview );
2)添加上下文菜单内容:
public void onCreateContextMenu(ContextMenu menu,......){
super.onCreateContextMenu(...);
// 设置menu显示的内容
menu.setHeaderTitle("文件操作“);
menu.setHeaderIcon( R.drawable.ic);
// 1)通过代码动态添加,如下代码,
menu.add( 1 ,1 , 1, "复制”);// 参数一 groupId, 参数二 ItemID, 参数三 显示顺序, 参数四 文字内容
menu.add( 1 ,2 , 1, "复制”);
// 2)通过加载xml文件中的菜单项添加,如下:
在res/ menu/ 下创建文件main.xml, 设置每一个item;
然后在onCreateContextMenu方法中填充布局:getMenuInflater().inflate(R.menu.main , menu);
3)设置菜单点击后的响应事件onContextItemSelected();
8.SubMenu子菜单
1)添加子菜单内容
public Boolean onCreateOptionsMenu(Menu menu){
// 1)通过java代码来实现
SubMenu file = menu.addSubMenu("文件“);
SubMenu edit = menu.addSubMenu("编辑”);
file.setHeaderTitle(“文件操作“);
file.add(1 ,1 ,1 ,"新建”);
edit.add(2,1,1,"新建“);
...同上
//2) 通过xml文件实现
getMenuInflater().inflate(R.menu.main, menu);
2)添加子菜单的监听事件
public boolean onOptionsItemSelected( MenuItem item){
if (item.getGroupId() == 1){
switch( item.getItemId()){
case 1:
....
}
}