在Activity/Fragment以外使用Toast(涉及到对context上下文的理解与运用)
来源:互联网 发布:mac电脑电池显示叉号 编辑:程序博客网 时间:2024/06/06 03:10
转载 http://www.nowamagic.net/academy/detail/50110211
一 在 Activity 使用 Toast
这种是最基本的使用,Toast的第一个参数就是Context,一般在Activity中我们直接用this代替,代表调用者的实例为Activity。
01
public
class
TestDBActivity
extends
Activity {
02
03
@Override
04
protected
void
onCreate(Bundle savedInstanceState) {
05
// TODO Auto-generated method stub
06
super
.onCreate(savedInstanceState);
07
setContentView(R.layout.testdb2);
08
09
Toast.makeText(
this
,
"欢迎来到简明现代魔法~"
, Toast.LENGTH_SHORT).show();
10
//Toast.makeText(getApplicationContext(), "欢迎来到简明现代魔法~", Toast.LENGTH_SHORT).show();
11
}
12
}
这里用 getApplicationContext() 代替 this 也是可以的。
而到了一个button的onClick(View view)等方法时,我们用this时就会报错,所以我们可能使用ActivityName.this来解决,主要原因是因为实现Context的类主要有Android特有的几个模型,Activity、Service以及BroadcastReceiver。
二 在 Fragment 使用 Toast
在 Fragment 里需要用 getActivity() 来获取 Context 对象,写法如下:
1
public
class
BlogFragment
extends
Fragment {
2
3
@Override
4
public
void
onCreate(Bundle savedInstanceState) {
5
super
.onCreate(savedInstanceState);
6
7
Toast.makeText(getActivity(),
"欢迎来到简明现代魔法~"
, Toast.LENGTH_SHORT).show();
8
}
9
)
三 在非 Activity/Fragment 使用 Toast
如果你想在非 Activity/Fragment 的某个 class 中用 Toast,你还是用 this/getApplicationContext() 的话,一般会报这么一个错误:
1
the method getApplicationContext() is undefined
因为获取不到上下文,那么如何在这个class中也获取到 Context 呢?可以将 Context 传递过去。
在实例化一个 class 的时候,将 Context 作为参数传递:
1
MyClass myClass =
new
MyClass(
this
);
然后写一个构造函数,用以接收 Context 作为一个参数。
1
public
class
MyClass
2
{
3
Context c;
4
public
MyClass(Context context)
5
{
6
c = context;
7
}
8
}
接下来就可以使用 Toast 了:
1
public
void
onProviderDisabled(String provider) {
2
Toast.makeText(c,
"Gps Disabled"
, Toast.LENGTH_SHORT);
3
}
通过这个例子,能够理解 Context 的作用了没?
0 0
- 在Activity/Fragment以外使用Toast(涉及到对context上下文的理解与运用)
- 对Java中"上下文"(context)的理解
- Android: 如何在Fragment中使用上下文Context
- Android: 如何在Fragment中使用上下文Context
- Fragment与Activity之间传值,Fragment与Fragment传值以及对commit的理解
- Fragment与Activity的理解
- 对Windows程序中设备上下文DC(device context)的理解
- 对Windows程序中设备上下文DC(device context)的理解
- 【转】Android 里面我对Context(上下文)这个参数理解的不是很好,请求指教。
- Activity与Fragment搭配使用时,Fragment中使用Toast频繁出现空指针异常的解决办法
- 对Activity和Fragment生命周期的理解
- 如在和fragment中取得Activity的context
- Activity 中的Toast在Activity销毁后报错,解决方法,把context改成应用的
- 经常看到的词汇Context(上下文)怎么理解?
- 如何实现对上下文(Context)数据的统一管理
- Menu 和 context上下文的的理解
- 在Activity中使用Toast
- 在Activity中使用Toast
- linux用户和用户配置文件(nobody)
- 钩子(hook)编程
- 如何获得Windows 8.1中已记住的WIFI的明文密码
- 详解持久化Core Data框架的原理以及使用
- PreferenceActivity的使用
- 在Activity/Fragment以外使用Toast(涉及到对context上下文的理解与运用)
- HTML4+CSS2与HTML5+CSS3区别
- 666
- sdut2880
- httpclient 访问网页面
- Android API Guides---Administration
- error C2011: “LockTypeEnum”: “enum”类型重定义
- 记录
- hduoj1213(并查集)