Android中的Context
Context用来访问全局信息的接口,比如影城程序的资源。一些常用的组件都是继承自Context,目的就是方便的访问资源,比如Activity, Service....
从Context访问本组件的资源:
public class MainActivity extends AppCompatActivity { private TextView tv; @Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
tv = new TextView(this);
tv.setText(R.string.str);
setContentView(tv);
...
this是一个Context,通过调用setText函数的参数最终会以到以下形式:
getContext().getResources().getText(R.string.str)
当然除了获得字符串资源,也可以得到图片资源:
ImageView iv = new ImageView(this);
iv.setImageResource(R.mipmap.ic_launcher);
可以使用Context做组件之间的信息共享:
在AndroidMenifest.xml的application标签中指定android:name可以设置Android的application,这个application是全局的。
<application
android:name=".App"
android:allowBackup="true"
getApplicationContext()就可以得到全局的Context,这个Context可以在全局所有组件中进行共享。
比如,application下有两个activity标签,在这两个activity中都可以通过这个Context的getTextData|setTextData进行数据共享。
只要application没有被杀死,那么这两个activity之间就可以用这个Context进行通信。
//Activity1
tv.setText("共享的数据是:" + getApp().getTextData()); findViewById(R.id.button).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
getApp().setTextData(et.getText().toString());
tv.setText("共享的数据是:" + getApp().getTextData());
}
});
//Activity2
tv.setText("共享的数据是:" + getApp().getTextData());
findViewById(R.id.button).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
getApp().setTextData(et.getText().toString());
tv.setText("共享的数据是:" + getApp().getTextData());
}
});
把这两个Activity都设置成启动Activity,一个Activity设置的TextData可以在另外一个Activity中顺利读取。
Android中的Context的更多相关文章
- Android中的Context(一)
Android中的Context(一) 在Android开发中,Context可以说是我们接触地非常多的一个概念了,也译作"上下文",但是这个上下文到底是什么却并不好理解. 通俗的 ...
- 绝对让你理解Android中的Context
这个问题是StackOverFlow上面一个热门的问题What is Context in Android? 整理这篇文章的目的是Context确实是一个非常抽象的东西.我们在项目中随手都会用到它,但 ...
- Android中,Context,什么是Context?
注:本文翻译自Context, What Context?,原文链接在这里,作者是Dave Smith.ps:译者链接http://blog.csdn.net/race604/article/deta ...
- Android中的Context详解
前言:本文是我读<Android内核剖析>第7章 后形成的读书笔记 ,在此向欲了解Android框架的书籍推荐此书. 大家好, 今天给大家介绍下我们在应用开发中最熟悉而陌生的朋友---- ...
- Android 中的 Context
主要的功能是加载和访问资源(Context通常用来获取APP资源,创建UI,获取系统Service服务,启动Activity,绑定Service,发送广播,获取APP信息等) 如何理解: 我们可以理解 ...
- android 中的Context(一)
context的功能如此强大,它是activity的父类. public abstract class Context { ... public abstract Object getSystemSe ...
- Android中的单例模式
定义: 单例模式:确保某一个类只有一个实例,而且自行实例化并向整个系统提供这个实例. 使用场景: 确保某一个类有且只有一个对象的场景,避免产生多个对象消耗过多的资源,或者某种类型的对象只应该有且只有一 ...
- Android中JNI编程详解
前几天在参加腾讯模拟考的时候,腾讯出了一道关于JNI的题,具体如下: JNI本身是一个非常复杂的知识,但是其实对于腾讯的这道题而言,如果你懂JNI,那么你可能会觉得这道题非常简单,就相当于C语言中的h ...
- 【转】深入理解Android中的SharedPreferences
SharedPreferences作为Android中数据存储方式的一种,我们经常会用到,它适合用来保存那些少量的数据,特别是键值对数据,比如配置信息,登录信息等.不过要想做到正确使用SharedPr ...
随机推荐
- HMI与设计模式
设计模式是做一个好的架构的一个基础.那么设计模式具体的概念是啥呢?百度百科曰:设计模式(Design pattern)是一套被反复使用.多数人知晓的.经过分类编目的.代码设计经验的总结.使用设计模式是 ...
- 使用scp在windows和Linux之间互传文件
转自:http://yangzhongfei.blog.163.com/blog/static/4610987520103141050918/ 为了进行系统维护操作,有时需要再windows和linu ...
- td在relative模式下,IE9不显示border
方法一 .thisTd { background-clip: padding-box; position:relative; } 方法二 .thisTd { z-index=-1; ...
- Jmeter学习(二)
1. Jmeter预置知识-http协议 应用层协议http,ftp,smtp 1) http之url http 超文本传输协议,基于请求与响应模式的,无状态,应用层协议. http url: htt ...
- 关于HTML5音频——audio标签和Web Audio API各平台浏览器的支持情况
对比audio标签 和 Web Audio API 各平台浏览器的支持情况: audio element Web Audio API desktop browsers Chrome 14 Yes ...
- viewPager 的可滑动 Title
有三种方式: 1. 系统提供的title 缺点:标题在viewpager的滑动过程中也会滑动 实现:在ViewPager布局中添加 PagerTabStrip 或者是 PagerTitleStrip ...
- Win7全自动精简批处理_温柔处理极速修正版/暴力剩女工程测试版
2011htpcfans 发表于 2012-5-11 http://bbs.wuyou.net/forum.php?mod=viewthread&tid=210269&highligh ...
- mybatis if判断中的特殊符号
在使用mybatis 时我们sql是写在xml 映射文件中,如果写的sql中有一些特殊的字符的话,在解析xml文件的时候会被转义,但我们不希望他被转义,所以我们要使用<![CDATA[ ]]&g ...
- ActiveReports中如何在后台导出运行时绑定数据源报表
ActiveReports支持运行时绑定数据源功能,这种绑定数据源方法使用较为普及,然而很多系统中都需要在后台导出报表文件,所以用户就很困惑,ActiveReports中如何在后台导出运行时绑定数据源 ...
- SPSS数据分析—对数线性模型
我们之前讲Logistic回归模型的时候说过,分类数据在使用卡方检验的时候,当分类过多或者每个类别的水平数过多时,单元格会划分的非常细,有可能会导致大量单元格频数很小甚至为0,并且卡方检验虽然可以分析 ...