菜单、toast、对话框的使用

1.请说出android中菜单的类型?

  <1.选项菜单(在用户按手机上的Menu键时弹出的菜单)
  <2.上下文菜单(在用户长按指定的View对象超过2秒后自动弹出的菜单)
  <3.弹出菜单(当用户点击指定的View时弹出的菜单)

2.请说出生成选项菜单和处理选项菜单时需要重写Activity中的哪两个方法? 

 public boolean onCreateOptionsMenu(Menu)
 public boolean onprepareOptionsmenu(Menu) 

3.请说出生成上下文菜单及其对事件进行响应的使用过程?

<1.重写Activity的onCreateContextMenu(ContextMenu menu, View v, ContextMenu.ContextMenuInfo menuInfo)方法用来创建上下文菜单
<2.重写onContextItemSelected(MenuItem item)方法用来处理用户点中菜单项时的事件处理
<3.将上下文菜单注册到指定的View上 this.registerForContextMenu(this.textView_info);

  

4.请说出PopupMenu的使用过程

<1.实例化弹出菜单对象并指定上下文对象和当前弹出菜单关联的view对象:PopupMenu popupMenu=new PopupMenu(this,view);
<2.得到菜单填充器对象MenuInflater menuInflater= popupMenu.getMenuInflater();
<3.通过弹出菜单对象得到菜单对象Menu menu=popupMenu.getMenu();
<4.使用菜单填充器对象将指定的菜单文件转换成菜单对象并挂在到弹出菜单关联的菜单上menuInflater.inflate(R.menu.menu_main,menu);
<5.显示弹出菜单 popupMenu.show();
<6.给菜单注册点击事件 popupMenu.setOnMenuItemClickListener(this);

  

5.请说出简单土司,设置土司的位置和自定义土司的使用过程

toast.setGravity(Gravity.CENTER_HORIZONTAL|Gravity.CENTER_VERTICAL,0,0);

  <1.用布局填充器将指定的布局文件转换成view对象
  <2.实例化土司对象
  <3.设置土司的显示位置
  <4.设置土司的显示时长
  <5.设置土司的view
  <6.显示土司

6.请说出对话框的继承结构图

  progressDialog,DatePickerDialog,TimePickerDialog父类有:AlertDialog父类:Dialog父类Object

7.请说出提示对话框的使用步骤

  <1.实例化对话框构建器对象并指定当前对话框所属的上下文(Activity)对象,此时构造函数的参数一定不能是getApplicationContext()得到的上下文对象,
  <2.设置对话框的标题
  <3.设置对话框的消息
  <4.设置对话框显示的图标
  <5.设置对话框是否可以取消
  <6.创建并显示对话框

8.请说出通知的使用步骤。

普遍通知:
  < 1.实例化通知构建器对象 Builder builder = new Builder(this);
  <2.设置通知构建器的ticketText builder.setTicker("你好!");
  <3.设置通知的图标builder.setSmallIcon(R.drawable.ic_launcher)
  <4.设置通知的标题builder.setContentTitle("");
  <5.设置通知的内容builder.setContentText(");
  <6.设置通知的消息builder.setContentInfo("");
  <7.设置通知关联的延迟意图Intent intent = new Intent();
  // Intent.ACTION_DIAL:激活手机自带的电话拨号界面,供用户手工拨打电话
  intent.setAction(Intent.ACTION_DIAL);
  intent.setData(Uri.parse("tel:10086"));
  PendingIntent pendingIntent = PendingIntent.getActivity(this, 100,
  intent, PendingIntent.FLAG_UPDATE_CURRENT);
  builder.setContentIntent(pendingIntent);
  <8.构建通知对象Notification notification = builder.build();
  <9.使用通知管理器对象发送通知notificationManager.notify((int) System.currentTimeMillis(),notification);

大视图通知:

  <1.实例化通知构建器对象 Builder builder = new Builder(this);
  <2.设置通知构建器的ticketText builder.setTicker("你好!");
  <3.设置通知的图标builder.setSmallIcon(R.drawable.ic_launcher)
  <4.设置通知的标题builder.setContentTitle("");
  <5.设置通知的内容builder.setContentText(");
  <6.设置通知的消息builder.setContentInfo("");
  <7.设置通知关联的延迟意图Intent intent = new Intent();
  // Intent.ACTION_DIAL:激活手机自带的电话拨号界面,供用户手工拨打电话
  intent.setAction(Intent.ACTION_DIAL);
  intent.setData(Uri.parse("tel:10086"));
  PendingIntent pendingIntent = PendingIntent.getActivity(this, 100,
  intent, PendingIntent.FLAG_UPDATE_CURRENT);
  builder.setContentIntent(pendingIntent);

  设置通知的样式
  InboxStyle style = new InboxStyle();
  style.setBigContentTitle("大视图标题");
  style.setSummaryText("大视图的摘要!");
  String[] events = { "我是第一行", "我是第二行", "我是第三行", "我是第四行", "我是第五行" };
  for (int i = 0; i < events.length; i++) {
  style.addLine(events[i]);
  }

  builder.setStyle(style);
  <8.构建通知对象Notification notification = builder.build();
  <9.使用通知管理器对象发送通知notificationManager.notify((int) System.currentTimeMillis(),notification);

带进度条通知:

  < 1.实例化通知构建器对象 Builder builder = new Builder(this);
  <2.设置通知构建器的ticketText builder.setTicker("你好!");
  <3.设置通知的图标builder.setSmallIcon(R.drawable.ic_launcher)
  <4.设置通知的标题builder.setContentTitle("");
  <5.设置通知的内容builder.setContentText(");
  <6.设置通知的消息builder.setContentInfo("");
  <7.设置通知关联的延迟意图Intent intent = new Intent();
  // Intent.ACTION_DIAL:激活手机自带的电话拨号界面,供用户手工拨打电话
  intent.setAction(Intent.ACTION_DIAL);
  intent.setData(Uri.parse("tel:10086"));
  PendingIntent pendingIntent = PendingIntent.getActivity(this, 100,
  intent, PendingIntent.FLAG_UPDATE_CURRENT);
  builder.setContentIntent(pendingIntent);
  new Thread(new Runnable() {

  @Override
  public void run() {
    for (int i = 0; i <= 100; i++) {
    builder.setProgress(100,// 当前进度条的最大值
    i,// 当前进度条的当前值
    false// 当前进度条是确定进度条,true表示不确定进度条
    );

      notificationManager.notify(100, builder.build());
        SystemClock.sleep(100);
  }

  builder.setContentText("文件下载完成!");
  notificationManager.notify(100, builder.build());
  // 取消通知
  notificationManager.cancel(100);

  }
}).start();

自定义View的通知

  < 1.实例化通知构建器对象 Builder builder = new Builder(this);
  <2.设置通知构建器的ticketText builder.setTicker("你好!");
  <3.设置通知的图标builder.setSmallIcon(R.drawable.ic_launcher)
  <4.设置通知的标题builder.setContentTitle("");
  <5.设置自定义RemoteViews对象,远程视图:没有和Activity相关联的视图对象
  RemoteViews remoteViews=new RemoteViews(this.getPackageName(), R.layout.remote_views_item);
  remoteViews.setTextViewText(R.id.textView_title, "我是远程视图的标题");
  remoteViews.setTextViewText(R.id.textView_content, "我是远程视图的内容");
  remoteViews.setImageViewResource(R.id.imageView_header,R.drawable.ic_launcher);
  builder.setContent(remoteViews);
<6.构建通知对象Notification notification = builder.build();
<7.使用通知管理器对象发送通知notificationManager.notify((int) System.currentTimeMillis(),notification);

取消所有通知:notificationManager.cancelAll();

原文地址:https://www.cnblogs.com/qcgAd/p/5084597.html