当前位置:首页 » 安卓系统 » androidactivity数据

androidactivity数据

发布时间: 2023-01-16 01:12:14

㈠ 如何android多Activity间共享数据

方法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中
定义一个MyApplication继承于Application

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16

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中获取数据

1
2
3
4
5
6
7
8
9

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();
}
}

㈡ 如何android多Activity间共享数据

方法1:在某个Activity中声明一个公共的static变量把共享数据作为静态变量

java">{
publicstaticDatadata=null;//声明的变量

@Override
publicvoidonCreate(BundlesavedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
data=newData();
}
}
{
@Override
publicvoidonCreate(BundlesavedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
Datadata=OneActivity.data;
}

但是这样会增加activity之间的耦合度,不是很好

方法二:把共享数据作为放在Applicaiton中

定义一个MyApplication继承于Application

{

privateDatadata;
@Override
publicvoidonCreate(){
super.onCreate();
data=newData();
}

publicDatagetData(){
returndata;
}
publicvoidsetData(Datadata){
this.data=data;
}
}

将MyApplication配置到清单文件中作为程序启动的ApplicationContext

设置Application的name属性即可


在Activity中获取数据

{
@Override
protectedvoidonCreate(BundlesavedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
MyApplicationapplication=(MyApplication)getApplication();
Datadata=application.getData();
}
}

㈢ android activity之间怎么传对象数据

StartActivity的时候将数据携带到Intent的bundle里,如果要携带自定义的对象,你自定义的对象要实现Serializable接口,就是在类里加一个implement Serializable。
然后
Intent intent = new Intent(this, Activity2);
Bundle bundle = new Bundle();
bundle.putSerializable("参数名", 自定义对象);
intent.putExtras(bundle);
startActivity(intent);
就可以把参数带过去了,
取的时候用
getIntent().getSerializableExtra("参数名")
就可以取到你传过来的对象了
强转一下类型就能用了

㈣ 如何在Android开发中activity之间数据传递

android各组件之间可以使用Intent来传递数据, 这里以ActivityA向ActivityB传递数据为例

Intentintent=newIntent(context,ActivityB.class);

//如果context上下文不是Activity的话,需要添加下面这个flag,
if(!(contextinstanceofActivity)){
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
}
//添加要传递的数据
//这里的key到时候ActivityB会用来得到value
//android要求可以传递的数据类型包括基本数据类型,
//基本数据类型的数组,CharSequence,以及实现了Parcelable的对象
//putExtra是重载方法,根据value的类型会适当的打包进intent的Bundle对象里
intent.putExtra(key,value);
//或则将数据打包进Bundledata里,然后intent.putExtras(data);

context.startActivity(intent);

在ActivityB中

publicvoidonCreate(BundlesavedInstanceState){
//得到传递过来的数据
Bundlebundle=getIntent().getExtras();
//通过getXXX方法来获取key对应的value
bundle.getXXX(key);
}

㈤ Android开发中 Activity中数据、状态的保存

1.若是向数据库中插入数据,保存持久化数据的操作时应放在onpause()中.
protected
void
onpause(){…..
}
2.若保存ui控件的状态,
成员变量的值等应放在onsaveinstancestate()中
protected
void
onsaveinstancestate(bundle
outstate)
{....
}

热点内容
朗动顶配是什么配置 发布:2025-09-17 16:08:35 浏览:428
小孩子学习编程 发布:2025-09-17 16:05:12 浏览:105
vivo手机怎样关闭腾讯视频缓存 发布:2025-09-17 16:03:24 浏览:250
手机内存和存储空间 发布:2025-09-17 15:53:40 浏览:591
小米5怎么升级安卓7 发布:2025-09-17 15:44:14 浏览:904
java培训班一般要多少钱 发布:2025-09-17 15:39:34 浏览:151
脚本挂到宝塔看视频 发布:2025-09-17 15:33:36 浏览:282
简单的文字加密 发布:2025-09-17 15:12:48 浏览:963
安卓哪个办公软件好用 发布:2025-09-17 14:56:36 浏览:186
packagephp 发布:2025-09-17 14:55:42 浏览:366