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中顺利读取。

  • 相关阅读:
    集合set
    字典
    元组
    列表
    for循环
    Windows调试2.异常产生详细流程
    双机环境搭建
    Windows调试1.WinDbg基本使用-异常基础知识
    PE基础7-HOOK练习
    PE基础6_远程线程注入-HOOK(消息-InLine-IAT)
  • 原文地址:https://www.cnblogs.com/dracohan/p/5985875.html
Copyright © 2011-2022 走看看