android不同activity之间共享数据解决方法

2016-02-19 11:32 4 1 收藏

今天图老师小编要跟大家分享android不同activity之间共享数据解决方法,精心挑选的过程简单易学,喜欢的朋友一起来学习吧!

【 tulaoshi.com - 编程语言 】

最近做局域网socket连接问题,要在多个activity之间公用一个socket连接,就在网上搜了下资料,感觉还是application方法好用,帖出来分享下!
Android中在不同Activity中传递变量,通常使用Intent中Bundle添加变量的操作方法。
保存参数时:
代码如下:

Intent intent = new Intent();
intent.setClass(A.this, B.class);
Bundle bundle = new Bundle();
bundle.putString("name", "xiaozhu");
intent.putExtras(bundle);
startActivity(intent);

读取参数:
代码如下:

Intent intent = this.getIntent();
Bundle bundle = intent.getExtras();
String name = bundle.getString("name");
[java] view plaincopy
Intent intent = this.getIntent();
Bundle bundle = intent.getExtras();
String name = bundle.getString("name");

不过在多个Activity中经常使用同一变量时,使用Bundle则比较麻烦,每次调用Activity都需要设置一次。
如想在整个应用中使用,在java中一般是使用静态变量,而在android中有个更优雅的方式是使用Application context。
新建一个类,继承自Application
代码如下:

class MyApp extends Application {
private String myState;
public String getState() {
return myState;
}
public void setState(String s) {
myState = s;
}
}

在AndroidManifest.xml的application加个name属性就可以了,如下面所示:
代码如下:

application android:name=".MyApp" android:icon="@drawable/icon" android:label="@string/app_name"

使用时:
代码如下:

class Blah extends Activity {
@Override
public void onCreate(Bundle b){
...
MyApp appState = ((MyApp)getApplicationContext());
String state = appState.getState();
...
}
}

来源:https://www.tulaoshi.com/n/20160219/1597821.html

延伸阅读
    以US7ASCII的库中导出的数据导入到字符集为ZHS16GBK的库为例子: 假设US7ASCII的库是A机,字符集为ZHS16GBK的库为B机 1.确定你A机上的oracle用户的.profile文件中的NLS_LANG是US7ASCII,正常的导出所有数据。 2.然后传到B机上,bin模式,然后在B机上设定好oracle用户的设定环境变量NLS_LANG=AMERICAN_AMERICA...
标签: 电脑入门
重新联接一下打印服务器就可以了,步聚如下: 打印机共享具体步骤如下: 1.配置打印机主机 首先我们要在主机上配置打印机。我们暂且称直接连接打印机的电脑为主机,而局域网内其他需要和主机共享打印的电脑称为客户机。 第一步: 将打印机连接至主机,打开打印机电源,通过主机的控制面板进入到打印机和传真文件夹,在空白处单击鼠标右...
在做android开发时有这样一个需求,我们需要把地图的zoomcontroller放置于地图的右下角。 默认情况下,我们在eclipse中拖动控件到editor中,控件的位置将位于整个屏幕的左上角。可以使用 android:layout_gravity、android:gravity和android:width三个属性值,实现控件的九宫格定位。 Xml代码 代码如下: ZoomControls android...
有一种需要,我们在菜单项中点击退出应用程序,应用程序就退出,不需要回到MainActivity 设计: 有两个应用界面MainActivity和BActivity,以及用于程序的通用类ExitUtil 步骤: 1、添加一个类,名为ExitUtil 代码如下: public class ExitUtil {  public static final int EXIT_APPLICATION = 0x0001;  private Context mC...
微信载入数据失败的解决方法   方法/步骤 目前微信支持IOS、Android、S60V3、S60V5、Windows Phone五种手机操作系统,如您下载后无法正常安装使用,载入数据失败,可能是由以下原因导致。 由于网络原因软件数据包在下载过程中部分丢失了,请您重新下载再进行安装;在电脑端下载网速较好,下载后连接手机进行安装,不要用手...

经验教程

925

收藏

37
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部