美文网首页
关于Application保存全局变量

关于Application保存全局变量

作者: JUNE言JUNE语 | 来源:发表于2016-05-29 22:45 被阅读1415次

    关于全局变量Application

    继承application的MyApplication,是Android中的一个全局变量。举个最简单的例子,一个包含有登录功能的app,在登录之后可以将用户信息放在MyApplication中,之后不管跳转到哪个activity,都可以直接调用相关信息。

    创建MyApplication,设置全局变量Username

     private String username = "";
     public String getUsername() {
        return username;
    }
    
    public void setUsername(String username) {
        this.username = username;
    }
    

    在activity_main.xml

    定义一个EditText跟两个Button(EditText用于输入,Button一个用绑定事件将EditText获取的String保存到Application,另一个用于跳转到另外一个activity)

    <EditText 
        android:id="@+id/username_et"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"/>
    
    <Button
        android:id="@+id/btn1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="存储String" />
    
    <Button
        android:id="@+id/btn2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="跳转" />
    

    MainActivity.java中

     //获取Application
     myApplication = (MyApplication) getApplication();
    btn1.setOnClickListener(new OnClickListener() {
            
            @Override
            public void onClick(View arg0) {
                //将获取的String赋值给MyApplication的username
                String username = username_et.getText().toString().trim();
                myApplication.setUsername(username);
            }
        });
    
        btn2.setOnClickListener(new OnClickListener() {
            //跳转到新的Activity,在新的Activity中调用MyApplication中的username
            @Override
            public void onClick(View arg0) {
                Intent intent = new Intent(MainActivity.this,testGetApplication.class);
                startActivity(intent);
            }
        });
    

    新的Activity中

        btn3 = (Button) findViewById(R.id.btn3);
        tv = (TextView) findViewById(R.id.tv);
        
        myApplication = (MyApplication) getApplication();
        
        btn3.setOnClickListener(new OnClickListener() {
            
            @Override
            public void onClick(View arg0) {
                
                tv.setText(myApplication.getUsername());
                
            }
        });
    

    测试

    MainActivity中输入 跳转到新的Activity,get到Application中保存的数据

    由此可以看出Application保存全局变量

    记录下自己容易忘记的
    才不会每次学完用完
    又忘记了
    

    相关文章

      网友评论

          本文标题:关于Application保存全局变量

          本文链接:https://www.haomeiwen.com/subject/cxmqdttx.html