当前位置:首页 » 安卓系统 » 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)
{....
}

热点内容
苹果11的摄像头是什么配置 发布:2025-07-04 20:32:20 浏览:58
plc编程入门视频 发布:2025-07-04 20:26:02 浏览:927
小米电视设置界面密码是多少 发布:2025-07-04 20:26:01 浏览:989
linux软件测试 发布:2025-07-04 20:12:40 浏览:274
小数加减法计算法则 发布:2025-07-04 20:11:49 浏览:691
文件如何定时上传至服务器 发布:2025-07-04 20:06:17 浏览:860
菜鸟商城源码 发布:2025-07-04 20:01:31 浏览:446
英雄联盟头像文件夹 发布:2025-07-04 19:49:59 浏览:580
取消电脑连接wifi密码怎么设置密码 发布:2025-07-04 19:31:32 浏览:508
电脑服务器市场 发布:2025-07-04 19:14:06 浏览:504