如何android多Activity间共享数据
答案:2 悬赏:0
解决时间 2021-04-18 09:32
- 提问者网友:野性
- 2021-04-17 13:33
如何android多Activity间共享数据
最佳答案
- 二级知识专家网友:情窦初殇
- 2021-04-17 13:41
方法1:在某个Activity中声明一个公共的static变量把共享数据作为静态变量
1
2
3
4
5
6
7
8
9
10
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();
}
}
1
2
3
4
5
6
7
public class TwoActivity extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
Data data = OneActivity.data;
}
但是这样会增加activity之间的耦合度,不是很好
方法二:把共享数据作为放在Applicaiton中
1
2
3
4
5
6
7
8
9
10
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();
}
}
1
2
3
4
5
6
7
public class TwoActivity extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
Data data = OneActivity.data;
}
但是这样会增加activity之间的耦合度,不是很好
方法二:把共享数据作为放在Applicaiton中
全部回答
- 1楼网友:一池湖水
- 2021-04-17 14:30
方法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(); } }
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯