android学习-Activity数据传递的使用方法

一、使用Intent的传递数据

这是最常用的一种数据传递方法,通过Intent类的.putExtra方法可以将简单类型的数据或可序列化的对象保存在Intent的对象中,然后再Activity中使用getXxx(getInt,getString等)获得数据。将数据保存到Intent对象的代码如下。

intent = new Intent(this,MyActivity1.class);

//保存String类型的值

intent.putExtra("intent_string", "通过Intent传递的字符串");

//保存Integer类型的值

intent.putExtra("intent_integer", 200);

Data data=new Data();

data.id=1000;

data.name="Android";

//保存可序列化的对象

intent.putExtra("intent_object", data);

//启动要显示的Activity

startActivity(intent);


上面的代码设计到了一个Data类,这个类是可序列化的,也就是实现了java.io.Serializable接口。

Data类的代码如下:

import java.io.Serializable;


public class Data implements Serializable{

public int id;

public String name;

}

在MyActivity1类中获得上面保存的3个值(String,Integer,Data类型的值)的代码如下:

p

public class MyActivity1 extends Activity {

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.myactivity1);

TextView textView=(TextView)findViewById(R.id.textView1);

//获得String类型的数据

String intentString = getIntent().getStringExtra("intent_string");

//获得Integer类型的数据

int intentInteger = getIntent().getExtras().getInt("intent_integer");

//获得Data数据类型的数据

Data data = (Data)getIntent().getExtras().get("intent_object");

StringBuffer sb=new StringBuffer();

sb.append("intent_string:");

sb.append(intentString);

sb.append("\n");

sb.append("intent_integer:");

sb.append(intentInteger);

sb.append("\n");

sb.append("data.id:");

sb.append(data.id);

sb.append("\n");

sb.append("data.name:");

sb.append(data.name);

sb.append("\n");

//在屏幕上输入传递过来的值

textView.setText(sb.toString());

}


你可能感兴趣的:(android)