Context 用于访问全局信息的接口

App的资源: strings, drawable资源等等

工程代码:Android Context作用-LMLPHPLearnContext.zip

--------------------------------------------------------

下面来看一个用Context来范围资源的粒子

public class MainActivity extends Activity {

    String TAG = "CARLOZ";

    @Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState); //Activity 本身就是一个 Context
TextView tv = new TextView(MainActivity.this);
tv.setText("hello carloz");
tv.setText(R.string.hello_world);
setContentView(tv); String str = (String) getApplicationContext().getResources().getText(R.string.hello_world);
Log.d(TAG, str);
// 输出 08-16 11:59:27.402: D/CARLOZ(13255): Hello world! ImageView iv = new ImageView(MainActivity.this);
iv.setImageResource(R.drawable.ic_launcher);
setContentView(iv);
}
}

由上代码可以看出新建一个TextView或者ImageView至少要 一个参数 Context,Activity本身就是一个Context,所以可以复制。

tv.setText(R.string.hello_world); 传入一个string id, 而setText API内部的代码是 getContext().getResources().getText(resid);  可以看到,获取资源需要用到Context。

05-01 03:40