您的位置:首页 > 其它

安卓四大组件之一#2-一使用Intent显式意图实现界面跳转以及数据传递

2013-08-23 19:03 1021 查看
上一篇博文介绍了Activity的创建以及生命周期,接下来我为大家介绍在一个应用程序内2种常见的界面跳转方法

1:startActivity()方法
(1):在布局界面中创建一个布局,让用户填入账号密码,然后点击按钮提交,如下图



(2):我们学java的都知道万事万物皆对象,所以能传递对象数据就基本什么数据都能传。这里我就写个person类封装用户填入的数据,代码如下(这里注意不要吧person写成内部类,因为2个界面都需要用到这个类,还有如果以对象传递数据话类必须实现序列化接口,这里为了方便大家看代码就不将成员变量定义为私有)
public class Person implements Serializable{

private static final long serialVersionUID = 1L;
String mUsername;
String mPassword;
public Person(String mUsername, String mPassword) {
super();
this.mUsername = mUsername;
this.mPassword = mPassword;
}
}
(3):创建一个新的activity,布局里面放置一个文本控件用来显示传递过来的用户信息,如何正确创建新的Activity上一篇博文有介绍。
(4):在MainActivity的onCreate初始化控件对象,然后再监听方法中写入界面跳转代码,代码如下
@Override
public void onClick(View v) {
//创建一个用来传递数据intent对象
Intent intent = new Intent();
//调用setclass方法,第一个参数为当前Activity类自身引用,第二个为跳转的Activity
intent.setClass(this, SecondActivity.class);
//获取文本编辑框中用户输入的信息
String username = mEditText1.getText().toString();
String password = mEditText2.getText().toString();
//创建一个封装类Person来封装数据
Person p = new Person(username, password);
//调用putExtra方法,第一个参数为此对象的键,第二个为此对象的值
intent.putExtra("person", p);
//启动界面跳转
startActivity(intent );
}
(5);在第二个界面代码中获取调用getintent获取信息,并将获取信息的值显示在界面上,代码如下
TextView textView = (TextView) findViewById(R.id.textView1);
//获取传递过来的intent对象
Intent intent = getIntent();
//调用intentgetSerializableExtra()方法获取person对象
Person p = (Person) intent.getSerializableExtra("person");
//将person封装的数据显示到文本上
textView.setText("您的姓名是:"+p.mUsername+",您的密码是:"+p.mPassword);
这样就完成的数据传递和界面跳转,以下是显示效果图



点击提交后如下图



等会我会把完整代码上传到我的上传,大家如果有需要的话可以去下载,下次我为大家介绍常用的第二种界面跳转形式
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
相关文章推荐