如何android多Activity间共享数据
2015-12-08 · 做真实的自己 用良心做教育
千锋教育
千锋教育专注HTML5大前端、JavaEE、Python、人工智能、UI&UE、云计算、全栈软件测试、大数据、物联网+嵌入式、Unity游戏开发、网络安全、互联网营销、Go语言等培训教育。
向TA提问
关注
展开全部
方法1:在某个Activity中声明一个公共的static变量把共享数据作为静态变量
public class OneActivity extends Activity {
public static Data data = null;//声明的变量
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
data = new Data();
}
}
public class TwoActivity extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
Data data = OneActivity.data;
}
但是这样会增加activity之间的耦合度,不是很好
方法二:把共享数据作为放在Applicaiton中
定义一个MyApplication继承于Application
public class MyApplication extends Application{
private Data data;
@Override
public void onCreate() {
super.onCreate();
data = new Data();
}
public Data getData(){
return data;
}
public void setData(Data data){
this.data = data;
}
}
将MyApplication配置到清单文件中作为程序启动的ApplicationContext
设置Application的name属性即可
在Activity中获取数据
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
MyApplication application = (MyApplication) getApplication();
Data data = application.getData();
}
}
2018-08-04 · 知道合伙人软件行家
关注
展开全部
android中如果需要在多个activity之间共享数据可以使用applicaion 或者使用 sharedpreferences来存储数据, application是全局的, 而 sharedpreferences是持久化的
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2014-12-05 · 知道合伙人数码行家
可以叫我表哥
知道合伙人数码行家
向TA提问 私信TA
知道合伙人数码行家
采纳数:25897
获赞数:1464976
2010年毕业于北京化工大学北方学院计算机科学与技术专业毕业,学士学位,工程电子技术行业4年从业经验。
向TA提问 私信TA
关注
展开全部
通过Application Context进行变量共享
首先,建立一个继承自Application的类,将要共享的变量在其中声明:
代码:
import android.app.Application;
public class ApplicationTrans extends Application {
private String value;
public String getValue() {
return value;
}
public void setValue(String value) {
this.value = value;
}
}
注意:需要注意的是,写完这个类之后需要在AndroidManifest.xml中在Application节点中进行设置
<application
android:name=".ApplicationTrans"//必须设置
android:icon="@drawable/ic_launcher"
android:label="@string/app_name" >
<activity
android:name=".TwoActivityShareDataActivity"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity android:name=".SecondActivity" >
</activity>
</application>
接下来在MainActivity中进行操作:
((ApplicationTrans) getApplication()).setValue("我是通过Application传递的值");//赋值操作
在第二个Activity中获得该值:就行用这个值进行操作了
((ApplicationTrans) getApplication()).getValue();
首先,建立一个继承自Application的类,将要共享的变量在其中声明:
代码:
import android.app.Application;
public class ApplicationTrans extends Application {
private String value;
public String getValue() {
return value;
}
public void setValue(String value) {
this.value = value;
}
}
注意:需要注意的是,写完这个类之后需要在AndroidManifest.xml中在Application节点中进行设置
<application
android:name=".ApplicationTrans"//必须设置
android:icon="@drawable/ic_launcher"
android:label="@string/app_name" >
<activity
android:name=".TwoActivityShareDataActivity"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity android:name=".SecondActivity" >
</activity>
</application>
接下来在MainActivity中进行操作:
((ApplicationTrans) getApplication()).setValue("我是通过Application传递的值");//赋值操作
在第二个Activity中获得该值:就行用这个值进行操作了
((ApplicationTrans) getApplication()).getValue();
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2014-12-05
展开全部
还是求大神来解答吧~
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
16875921044xnhgyugtyu
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询