在 Activity 使用 Toast

这种是最基本的使用,Toast的第一个参数就是Context,一般在Activity中我们直接用this代替,代表调用者的实例为Activity。

public class TestDBActivity extends Activity {

    @Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.testdb2); Toast.makeText(this, "欢迎来到简明现代魔法~", Toast.LENGTH_SHORT).show();
//Toast.makeText(getApplicationContext(), "欢迎来到简明现代魔法~", Toast.LENGTH_SHORT).show();
}
}

这里用 getApplicationContext() 代替 this 也是可以的。

而到了一个button的onClick(View view)等方法时,我们用this时就会报错,所以我们可能使用ActivityName.this来解决,主要原因是因为实现Context的类主要有Android特有的几个模型,Activity、Service以及BroadcastReceiver。

在 Fragment 使用 Toast

在 Fragment 里需要用 getActivity() 来获取 Context 对象,写法如下:

public class BlogFragment extends Fragment {

    @Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState); Toast.makeText(getActivity(), "欢迎来到简明现代魔法~", Toast.LENGTH_SHORT).show();
}
)

在非 Activity/Fragment 使用 Toast

如果你想在非 Activity/Fragment 的某个 class 中用 Toast,你还是用 this/getApplicationContext() 的话,一般会报这么一个错误:

the method getApplicationContext() is undefined

因为获取不到上下文,那么如何在这个class中也获取到 Context 呢?可以将 Context 传递过去。

在实例化一个 class 的时候,将 Context 作为参数传递:

MyClass myClass = new MyClass(this);

然后写一个构造函数,用以接收 Context 作为一个参数。

public class MyClass
{
Context c;
public MyClass(Context context)
{
c = context;
}
}

接下来就可以使用 Toast 了:

public void onProviderDisabled(String provider) {
Toast.makeText(c, "Gps Disabled", Toast.LENGTH_SHORT);
}

转自:现代魔法学院

在Activity/Fragment以外使用Toast【转】的更多相关文章

  1. [转]Android:Activity+Fragment及它们之间的数据交换(一)

    2014-05-18         来源:Android:Activity+Fragment及它们之间的数据交换(一)   简介: 为什么要用Fragment?使用Fragment可以在一个Acti ...

  2. Android:Activity+Fragment及它们之间的数据交换.

    Android:Activity+Fragment及它们之间的数据交换 关于Fragment与Fragment.Activity通信的四种方式 比较好一点的Activity+Fragment及它们之间 ...

  3. Android Fragment使用(三) Activity, Fragment, WebView的状态保存和恢复

    Android中的状态保存和恢复 Android中的状态保存和恢复, 包括Activity和Fragment以及其中View的状态处理. Activity的状态除了其中的View和Fragment的状 ...

  4. Android:Activity+Fragment及它们之间的数据交换(一)

    简单介绍: 为什么要用Fragment?使用Fragment能够在一个Activity中实现不同的界面. Fragment与Fragment之间的动画切换,远比Activity与Activity之间的 ...

  5. Android -- Activity,Fragment lifecycle

    Activity Lifecyce Fragment Lifecycle: 程序运行: 09-16 13:59:22.883 19022-19022/com.example.android.archi ...

  6. androidannotation study(1)---Activity, Fragment,Custom Class & Custom View

    androidannotation 是github上的一个开源项目. 主要是注解机制,可以改善android写代码的效率. Activity 使用 1.@EActivity 注解 可想而知,servi ...

  7. Data binding 在Activity,Fragment中引用以及加载其他布局

    Data binding在Activity中使用: DataBindingUtil.setContentView(this, R.layout.activity_home); Data binding ...

  8. Android应用开发:LoaderManager在Activity/Fragment中的使用分析

    LoaderManager 外部接口initLoader:起始 public <D> Loader<D> initLoader(int id, Bundle args, Loa ...

  9. 快速定位 Android APP 当前页面的三种方法(Activity / Fragment)

    方法一.通过adb命令打印当前页面: Android 如何快速定位当前页面是哪个Activity or Fragment (1)查看当前Activity :adb shell "dumpsy ...

随机推荐

  1. openresty开发系列39--nginx+lua实现接口签名安全认证

    一)需求背景现在app客户端请求后台服务是非常常用的请求方式,在我们写开放api接口时如何保证数据的安全,我们先看看有哪些安全性的问题 请求来源(身份)是否合法?请求参数被篡改?请求的唯一性(不可复制 ...

  2. nodejs 开发时,学用的热更新工具 nodemon

    开发用最多的是重启再刷新页面,那热更新少不了, 工具有很多常用唯 nodemon 了, 安装: npm install -g nodemon // 建议全局安装,开发时用的工具 使用: nodemon ...

  3. excel打开csv 出现乱码

    现在做舆情分析的相关项目,在数据处理的时候,发现了一个问题.将数据写入到csv文件,用excel打开(默认)就会出现乱码,如果将数据写入到.xlsx文件就不会出现乱码,因为csv是通用格式,所以我猜想 ...

  4. 某表中字段值存在多个Gid逗号分开 取值拆分每个gid SQL多个逗号隔开的取值

    存在值信息 表值函数实现: --实现split功能 的函数 拆分 逗号分开的多个值 ),)) )) as begin declare @i int set @SourceSql=rtrim(ltrim ...

  5. 【原创】MongoDB安装配置详解(标注两个坑)

    1.下载安装 3.4正式版([坑]不要最新版,有可能进度卡在这个位置不动,等了半个小时也没什么反映,) http://downloads.mongodb.org/win32/mongodb-win32 ...

  6. OpenJudge 1088 滑雪

    总时间限制: 1000ms 内存限制: 65536kB 描述 Michael喜欢滑雪百这并不奇怪, 因为滑雪的确很刺激.可是为了获得速度,滑的区域必须向下倾斜,而且当你滑到坡底,你不得不再次走上坡或者 ...

  7. win10 双网卡设置内网和外网同时访问

    当前环境是内网使用固定ip 用有线连接 外网自动获取使用wifi模块连接wifi cmd窗口下运行route print -4 打印路由信息 首先删除 所有0.0.0.0的路由,也就是默认设置 rou ...

  8. 如何申请百度地图用户Key

    打开网页http://lbsyun.baidu.com/,进入百度地图开发平台. 单击[登录],登录百度账号.如果您还没有百度账号,单击箭头处[立即注册]注册百度账号. 登录完成后,单击右上角箭头处[ ...

  9. new/delete与命名空间

    目录 1. new/delete 2. 命名空间 1. new/delete C++中的动态内存分配 C++通过new关键字进行动态内存申请 C++中的动态内存申请是基于类型进行的 delete关键字 ...

  10. P-R曲线深入理解

    P-R曲线就是精确率precision vs 召回率recall 曲线,以recall作为横坐标轴,precision作为纵坐标轴.首先解释一下精确率和召回率. 解释精确率和召回率之前,先来看下混淆矩 ...