zoukankan      html  css  js  c++  java
  • 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中顺利读取。

  • 相关阅读:
    html5基础---canvas
    html5基础---h5特性
    JS常用知识点(一)
    微信小程序开发(一)基础知识学习
    关于C# winform唤起本地已安装应用程序(测试win10,win7可用)
    js原型链结构理解
    JS闭包应用场景之函数回调(含函数的调用个人理解)
    (十三)MySQL锁机制
    (十一)MVCC-多版本并发控制机制(转)
    jvm014-垃圾回收器
  • 原文地址:https://www.cnblogs.com/dracohan/p/5985875.html
Copyright © 2011-2022 走看看