【移动应用开发技术】Android中如何实现Activity之间的数据传递_第1页
【移动应用开发技术】Android中如何实现Activity之间的数据传递_第2页
【移动应用开发技术】Android中如何实现Activity之间的数据传递_第3页
【移动应用开发技术】Android中如何实现Activity之间的数据传递_第4页
【移动应用开发技术】Android中如何实现Activity之间的数据传递_第5页
免费预览已结束,剩余1页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

【移动应用开发技术】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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论