安卓Android Context类实例详解

 更新时间:2016年07月08日 15:19:16   投稿:lqh  
在开发Android的过程中,总是能遇见Context类或者它的实例.Context类的实例经常被用来提供“应用程序”的引用,下面举例说明Contex类实例详解

1.例如下面的代码片段,Toast类的第一个参数接受一个Context对象:

@Override 
 protected Dialog onCreateDialog(int id) { 
 switch (id) { 
 case 0: 
 
 Builder builder = new AlertDialog.Builder(this); 
 builder.setIcon(R.drawable.ic_launcher); 
 builder.setTitle("This is a dialog with some simple text..."); 
 builder.setPositiveButton("OK", 
  new DialogInterface.OnClickListener() { 
  public void onClick(DialogInterface dialog, 
  int whichButton) { 
  Toast.makeText(getBaseContext(), "OK clicked!", 
   Toast.LENGTH_SHORT).show(); 
  } 
  }); 
 
 builder.setNegativeButton("Cancel", 
  new DialogInterface.OnClickListener() { 
  public void onClick(DialogInterface dialog, 
  int whichButton) { 
  Toast.makeText(getBaseContext(), "Cancel clicked!", 
   Toast.LENGTH_SHORT).show(); 
  } 
  }); 
 
 builder.setMultiChoiceItems(items, itemsChecked, 
  new DialogInterface.OnMultiChoiceClickListener() { 
  public void onClick(DialogInterface dialog, int which, 
  boolean isChecked) { 
  Toast.makeText( 
   getBaseContext(), 
   items[which] 
   + (isChecked ? " checked!" 
    : " unchecked!"), 
   Toast.LENGTH_SHORT).show(); 
  } 
  }); 
 return builder.create(); 
 
 } 
 return null; 
 } 
@Override
 protected Dialog onCreateDialog(int id) {
 switch (id) {
 case 0:

 Builder builder = new AlertDialog.Builder(this);
 builder.setIcon(R.drawable.ic_launcher);
 builder.setTitle("This is a dialog with some simple text...");
 builder.setPositiveButton("OK",
  new DialogInterface.OnClickListener() {
  public void onClick(DialogInterface dialog,
  int whichButton) {
  Toast.makeText(getBaseContext(), "OK clicked!",
   Toast.LENGTH_SHORT).show();
  }
  });

 builder.setNegativeButton("Cancel",
  new DialogInterface.OnClickListener() {
  public void onClick(DialogInterface dialog,
  int whichButton) {
  Toast.makeText(getBaseContext(), "Cancel clicked!",
   Toast.LENGTH_SHORT).show();
  }
  });

 builder.setMultiChoiceItems(items, itemsChecked,
  new DialogInterface.OnMultiChoiceClickListener() {
  public void onClick(DialogInterface dialog, int which,
  boolean isChecked) {
  Toast.makeText(
   getBaseContext(),
   items[which]
   + (isChecked ? " checked!"
    : " unchecked!"),
   Toast.LENGTH_SHORT).show();
  }
  });
 return builder.create();

 }
 return null;
 }

然而,Toast类并没有直接用在Activity中,它被用在了AlertDialog类中。所以,这里需要通过getBaseContext()方法获取一个Context类的实例。

2.在Activity中动态地创建一个视图的时候也会遇见Context。

例如,如果想通过硬编码动态地创建一个TextView:

TextView tv = new TextView(this); 
TextView tv = new TextView(this); 

TextView的构造器接受一个Context对象,因为Activity类是Context类的子类,所以可以用this关键字来代替这个Conext对象。

提示:

    使用this动态地创建视图,例如TextView、Button,存在一个潜在的风险——内存泄漏。所以,尽可能地使用getApplicationContext()方法替代this。

相关文章

  • Android开发使用PopupMenu创建弹出式菜单完整实例

    Android开发使用PopupMenu创建弹出式菜单完整实例

    这篇文章主要介绍了Android开发使用PopupMenu创建弹出式菜单,结合完整实例形式分析了Android基于PopupMenu对象创建的弹出式菜单相关操作技巧与注意事项,需要的朋友可以参考下
    2019-03-03
  • Android实现获取短信验证码并自动填写功能

    Android实现获取短信验证码并自动填写功能

    这篇文章主要为大家详细介绍了Android实现获取短信验证码并自动填写功能,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-07-07
  • Android 控制车载蓝牙播放音乐详解流程

    Android 控制车载蓝牙播放音乐详解流程

    本篇文章介绍了手机端音乐暂停和播放状态,从服务端告诉客户端、设备端实现暂停、播放、上一首、下一首等功能的实现,通读本篇对大家的学习或工作具有一定的价值,需要的朋友可以参考下
    2021-10-10
  • Android RollPagerView实现轮播图

    Android RollPagerView实现轮播图

    这篇文章主要介绍了Android RollPagerView实现轮播图的相关资料,这里提供实例来实现轮播图的简单实例,希望能帮助到大家,需要的朋友可以参考下
    2017-08-08
  • Android实现注册登录界面的实例代码

    Android实现注册登录界面的实例代码

    这篇文章主要介绍了Android实现注册登录界面的实例代码,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-05-05
  • android 完全退出应用程序实现代码

    android 完全退出应用程序实现代码

    这篇文章主要介绍了在android中完全退出应用的实现代码,多种实现方法,大家可以根据需求选择
    2013-06-06
  • Android OKHttp使用简介

    Android OKHttp使用简介

    目前Android端调用网络请求最常用的框架就是OKHttp,目前项目中也经常会用到。介绍下OKHttp的使用场景
    2021-05-05
  • Android布局耗时监测的三种实现方式

    Android布局耗时监测的三种实现方式

    在Android应用开发中,性能优化是一个至关重要的方面,为了更好地监测布局渲染的耗时,我们需要一种可靠的实现方案,本文将介绍三种针对Android布局耗时监测的实现方案,帮助开发者及时发现并解决布局性能问题,需要的朋友可以参考下
    2024-03-03
  • Android实现图片一边的三角形边框效果

    Android实现图片一边的三角形边框效果

    这篇文章主要介绍了Android实现图片一边的三角形边框效果,本文图文并茂通过实例代码讲解的非常详细,需要的朋友可以参考下
    2019-12-12
  • Android控件之Gallery用法实例分析

    Android控件之Gallery用法实例分析

    这篇文章主要介绍了Android控件之Gallery用法,以完整实例形式较为详细的分析了Gallery控件实现图像显示的技巧,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-09-09

最新评论