(一) 全局变量的使用:

android studio 在 Activity 和 Fragment  中传递变量方法:

新建一个数据类:WholeData.java

public class WholeData extends Application {    private boolean isClicked;    public boolean getClick(){        return this.isClicked;    }    public void setClick(boolean Click){        this.isClicked= Click;    }}

在 AndroidMainifest.xml 文件的application部分加入语句:

 android:name=".WholeData"

在activity中实例化:

    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        final Data app = (Data)getApplicationContext();        clickedButton = (ToggleButton)findViewById(R.id.click_button);        CompoundButton.OnCheckedChangeListener listener = new CompoundButton.OnCheckedChangeListener() {            @Override            public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {                if(isChecked){                    app.setClick(true);                }                else{                    app.setClick(false);                }            }        };        clickedButton .setOnCheckedChangeListener(listener);    }

下面在Fragment中调用WholeData类中的全局变量:

final Data app = (Data) getActivity().getApplicationContext();boolean clickstate = app.getEnhance();

当然也可以在其他activity中调用该全局变量:

WholeData data= (WholeData) getApplicationContext();boolean ckickstata = data.getClick();

(二)保存状态值到xml文件中方法

上述全局变量的使用可以在软件运行中起作用,当软件重启时,全局变量便会恢复到初始值,此时,如果想让软件重启也不会影响到某个变量的值,则可以考虑将该值放到一个文件中。写入方法为:

   /* 将状态存放到xml文件中    */    public void registerStateWrite(){        SharedPreferences sf;        Context context = this;        sf = context.getSharedPreferences("isReg", Context.MODE_PRIVATE);        SharedPreferences.Editor editor = sf.edit();        editor.putString("RegState", "true");        editor.commit();    }

getSharedPreferences有两个参数,第一个参数是存储的名称,第二个参数是文件的打开方式,MODE_PRIVATE表示该应用程序私有,MODE_WORLD_READABLE和MODE_WORLD_WRITEABLE是表示全局读或写权限,MODE_MULTI_PROCESS表示可以跨进程访问。

当需要获取该值时的方法为:

Context context = this;SharedPreferences sp = context.getSharedPreferences("isReg", Context.MODE_PRIVATE);String Reg_State = sp.getString("RegState", "false");

当然,进行读写操作时,需要赋给相应的权限:

  

(三) 实例应用:

根据状态值的情况选择进入不同的界面中:

public class TurnOn extends Activity {    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.turnon);        Context context = this;        SharedPreferences sp = context.getSharedPreferences("isReg", Context.MODE_PRIVATE);        String Reg_State = sp.getString("RegState", "false");        if(Reg_State.equals("true")){            Intent intent =new Intent(TurnOn.this,MainActivity.class);            startActivity(intent);        }        else{            Button register_bt=(Button)findViewById(R.id.register_bt);            register_bt.setOnClickListener(new OnClickListener() {                @Override                public void onClick(View v) {                    Intent intent =new Intent(TurnOn.this,Register.class);                    startActivity(intent);                }            });        }    }}

程序中涉及到的活动页都需要在 AndroidMainifest.xml 文件的application进行声明:

参考:

https://blog.csdn.net/wirelessqa/article/details/8589230

https://blog.csdn.net/feiyangxiaomi/article/details/9966215

https://blog.csdn.net/qq_35980005/article/details/78380764

https://www.cnblogs.com/2010wuhao/p/4681899.html

https://blog.csdn.net/bestone0213/article/details/43639919

https://blog.csdn.net/baidu_31093133/article/details/51476726

更多相关文章

  1. 在Android(安卓)Studio中导入jar包
  2. 40.Android(安卓)资源Id工具类ResourcesUtil
  3. android 更新失败
  4. Android下使用配置文件(Preferences)
  5. Android:onNewIntent()触发机制及注意事项
  6. Android断点续传核心代码
  7. Linux(ubuntu 11.04)环境下Android开发环境配置
  8. Android(安卓)读取文件内容
  9. android中使用svg图标

随机推荐

  1. android 可编辑的下拉框 Demo
  2. Android(安卓)Activity生命周期
  3. android API Demo之使用ViewFlipper制作
  4. Android判断应用程序从后台回到前台
  5. 专利敲诈——微软对Android痛下杀手的背
  6. How to build Android(安卓)Windows SDK
  7. Android(Java)正则表达式判断手机号、邮箱
  8. Android全屏显示
  9. Android资源文件mk的格式
  10. Android(安卓)使用IPC和后台Service通信