程序调试和消息菜单汇总知识

本文详细介绍Android应用的多种调试方法,包括Debug模式、LogCat使用及Toast展示等,并介绍了如何利用Dialog创建不同类型的对话框,同时展示了Notification通知栏及OptionsMenu、ContextMenu的创建方式。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、程序调试:

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:

....

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值