![【移动应用开发技术】Android中如何实现Activity之间的数据传递_第1页](http://file4.renrendoc.com/view/240fd4196991da0e55fc54e49247a7cc/240fd4196991da0e55fc54e49247a7cc1.gif)
![【移动应用开发技术】Android中如何实现Activity之间的数据传递_第2页](http://file4.renrendoc.com/view/240fd4196991da0e55fc54e49247a7cc/240fd4196991da0e55fc54e49247a7cc2.gif)
![【移动应用开发技术】Android中如何实现Activity之间的数据传递_第3页](http://file4.renrendoc.com/view/240fd4196991da0e55fc54e49247a7cc/240fd4196991da0e55fc54e49247a7cc3.gif)
![【移动应用开发技术】Android中如何实现Activity之间的数据传递_第4页](http://file4.renrendoc.com/view/240fd4196991da0e55fc54e49247a7cc/240fd4196991da0e55fc54e49247a7cc4.gif)
![【移动应用开发技术】Android中如何实现Activity之间的数据传递_第5页](http://file4.renrendoc.com/view/240fd4196991da0e55fc54e49247a7cc/240fd4196991da0e55fc54e49247a7cc5.gif)
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
【移动应用开发技术】Android中如何实现Activity之间的数据传递
1、通过Intent传递1.1、基本数据类型传递/upload/information/20200623/125/118488.jpgIntent
intent
=
new
Intent(this,
Activity2.class);
intent.putExtra(String
name,
boolean
value);
intent.putExtra(String
name,
byte
value);
intent.putExtra(String
name,
char
value);
intent.putExtra(String
name,
short
value);
intent.putExtra(String
name,
int
value);
intent.putExtra(String
name,
float
value);
intent.putExtra(String
name,
long
value);
intent.putExtra(String
name,
double
value);
startActivity(intent);Intent
intent
=
getIntent();
boolean
bool
=
intent.getBooleanExtra(String
name,
boolean
defaultValue);
byte
bt
=
intent.getByteExtra(String
name,
byte
defaultValue);
char
ch
=
intent.getCharExtra(String
name,
char
defaultValue);
short
sh
=
intent.getShortExtra(String
name,
short
defaultValue);
int
i
=
intent.getIntExtra(String
name,
int
defaultValue);
float
fl
=
intent.getFloatExtra(String
name,
float
defaultValue);
long
lg
=
intent.getLongExtra(String
name,
long
defaultValue);
double
db
=
intent.getDoubleExtra(String
name,
double
defaultValue);1.2、复杂数据类型传递intent.putExtra(String
name,
String
value);
intent.putExtra(String
name,
int[]
value);
intent.putExtra(String
name,
Parcelable
value);
intent.putExtra(String
name,
Serializable
value);
intent.putExtra(String
name,
CharSequence
value);
intent.putStringArrayListExtra(String
name,
ArrayList<String>
value);1.3、自定义数据类型传递public
class
Student{
public
String
name;
public
int
age;
}1.3.1、实现Serializable接口public
final
class
String
implements
java.io.Serializable,
Comparable<String>,
CharSequence
public
class
ArrayList<E>
extends
AbstractList<E>
implements
List<E>,
RandomAccess,
Cloneable,
java.io.Serializable
public
class
HashMap<K,V>
extends
AbstractMap<K,V>
implements
Map<K,V>,
Cloneable,
Serializablepublic
class
Student
implements
Serializable{
private
static
final
long
serialVersionUID
=
1L;
public
String
name;
public
int
age;
}intent.putExtra(String
name,
Serializable
value);
intent.getSerializableExtra(String
name);1.3.2、实现Parcelable接口public
class
Student
implements
Parcelable{
public
String
name;
public
int
age;
protected
Student(Parcel
in)
{
name
=
in.readString();
age
=
in.readInt();
}
public
static
final
Creator<Student>
CREATOR
=
new
Creator<Student>()
{
@Override
public
Student
createFromParcel(Parcel
in)
{
return
new
Student(in);
}
@Override
public
Student[]
newArray(int
size)
{
return
new
Student[size];
}
};
@Override
public
int
describeContents()
{
return
0;
}
@Override
public
void
writeToParcel(Parcel
dest,
int
flags)
{
dest.writeString(name);
dest.writeInt(age);
}
}intent.putExtra(String
name,
Parcelable
value);
intent.getParcelableExtra(String
name);2、通过全局变量传递public
class
Transmitter
{
public
static
Student
student;
}//传递
Student
stu
=
new
Student();
Transmitter.student
=
stu;
Intent
intent
=
new
Intent(this,
Activity2);
startActivity(intent);
//接收
onCreate(...){
Student
stu
=
Transmitter.student;
}3、通过SharedPreferences传递SharedPreferences
sp
=
getSharedPreferences("FILENAME",
MODE_PRIVATE);
SharedPreferences.Editor
editor
=
sp.edit();
editor.putBoolean(String
key,
boolean
value);
editor.putFloat(String
key,
float
value);
editor.putInt(String
key,
int
value);
editor.putLong(String
key,
long
value);
editor.putString(String
key,
String
value);
editor.putStringSet(String
key,
Set<String>
values);
//mit();
editor.apply();
startActivity(...);SharedPreferences
sp
=
getSharedPreferences("FILENAME",
MODE_PRIVATE);
sp.getBoolean(String
key,
boolean
defValue);
sp.getFloat(String
key,
float
defValue);
sp.getInt(String
key,
int
defValue);
sp.getLong(String
key,
long
defValue);
sp.getString(String
key,
String
defValue);
sp.getStringSet(String
key,
Set<String>
defValue);关于SharedPreferences有几点需要注意:public
class
HashSet<E>
extends
AbstractSet<E>
implements
Set<E>,
Cloneable,
java.io.Serializable
public
class
TreeSet<E>
extends
AbstractSet<E>
implements
NavigableSet<E>,
Cloneable,
java.io.Serializable
public
class
LinkedHashSet<E>
extends
HashSet<E>
implements
Set<E>,
Cloneable,
java.io.Serializable
{4、通过SystemProperties传递/**
*
Gives
access
to
the
system
properties
store.
The
system
properties
*
store
contains
a
list
of
string
key-value
pairs.
*
*
{@hide}
*/
public
class
SystemPropertiesSystemProperties.set("NAME",
"Shawn.XiaFei");
startActivity(...);SystemProperties.get("NAME");
//或者
SystemProperties.get("NAME",
"defValue");/**
*
Set
the
value
for
the
given
key.
*
@throws
IllegalArgumentException
if
the
key
exceeds
32
characters
*
@throws
IllegalArgumentException
if
the
value
exceeds
92
characters
*/
public
static
void
set(String
key,
String
val)
{
if
(key.length()
>
PROP_NAME_MAX)
{
throw
new
IllegalArgumentException("key.length
>
"
+
PROP_NAME_MAX);
}
if
(val
!=
null
&&
val.length()
>
PROP_VALUE_MAX)
{
throw
new
IllegalArgumentException("val.length
>
"
+
PROP_VALUE_MAX);
}
native_set(key,
val);
}Unable
to
set
property
"NAME"
to
"Shawn.XiaFei":
connection
failed;
errno=13
(Permission
denied)
type=1400
audit(0.0:167):
avc:
denied
{
write
}
for
name="property_service"
dev="tmpfs"
ino=10696
scontext=u:r:untrusted_app_25:s0:c512,c768
tcontext=u:object_r:property_socket:s0
tclass=sock_file
permissive=05、通过SettingsProvider传递/*Settings.System.putInt(ContentResolver
cr,
String
name,
int
value);
Settings.System.putString(ContentResolver
cr,
String
name,
String
value);
Settings.System.putFloat(ContentResolv
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年度项目策划实施与管理协议书样本
- 2025年个人劳动合同简易版版式
- 2025年古建筑保护策划合作协议书范本
- 2025年公立学校教师合同模板
- 2025年个人用车租赁协议示范
- 新一线城市二手房购买协议指南2025
- 2025年办公楼装修设计合同模板
- 2025年加盟中介公司合同范本
- 2025年制定汽车租赁合同标准格式
- 2025年婚宴场所预订合同模板
- 术语翻译与本地化
- 机动车商业保险条款(2020版)
- 2024-2025学年福建省龙岩市五县第一次中考科目教学质量检测试题化学试题含解析
- 高职院校高水平现代物流管理专业群建设方案(现代物流管理专业群)
- 《大小比较》(说课课件)二年级下册数学西师大版
- AQ/T 1089-2020 煤矿加固煤岩体用高分子材料(正式版)
- 张五常子女和婚姻合约中的产权执行问题
- 医院多重耐药菌感染管理规范
- 2024专升本英语答题卡浙江省
- 中英对照版-中文版-The-Dead-By-James-Joyces死者-詹姆斯-乔伊斯
- 2024年广东深圳高三二模英语读后续写试题讲评课件
评论
0/150
提交评论