从零开始的android studio(二)

以传递参数之名,开启新的篇章。

这篇讲传递参数。

上一章利用了

来跳转页面,可见Intent的作用,另外Intent还能用来传递参数。

给TextView加上id后回到MainActivity,在监听事件里写上:

Intent i= new Intent(MainActivity.this,AnotherAty.class);
i.putExtra("data","Hello world!");
startActivity(i);

传递的字符串已经准备好,接下来去接收那写入接收的媒介。

进入AnotherAty,我们通过getIntent()方法来将数据接收过来:

Intent i = getIntent();

记得要将TextView加进去哦。

在这里需要将findViewByID进行强制类型转换

之后要设置一个字符串进行接收数据。

tv.setText(i.getStringExtra("data"));

这样就完成了:

运行~成功!

============================分割线===============================

接下来学习传递数据包的Bundle即Bundel b = new Bundle();

使用方法也是差不多,只不过Bundle可以传递更多的参数。

在AnotherAty里:

加上Bundle的接收就行了。

运行~成功!

通过Bundle的方法我们就可以传递比较复杂的数据了。

 ============================分割线===============================

接下来学习如何在多个Activity里传递值对象。

所谓值对象就是指自定义的有值的对象。

新建立一个名为User的类

然后定义两个成员:

private String name;
private int age;

再给两个成员加入方法:

回到MainActivity中,写上要传递的数据后,会发现我们要选择两种类型分别是”Seriallzable“和"Parcelable",这两种的区别在于第一种是靠系统自动生成,程序改动的不多,运行速度慢;而第二种就反过来,需要改动很多程序,不依靠系统,运行速度快。

第一种”Serializable“:

只需要在开头中加入implements Serialisable

接下来跳转到AnotherAty中:

将该注释的注释,加上最后的两句。

提示一下句子移位的快捷键是”Ctrl+shift+方向键“。

运行~成功!

第二种parcelable:

改一下,提示错了的原因是需要增加两个方法:

OK后:

第一个不需要管,第二个则需要我们自己手动输入。

加入这两句达到传递数据给其他方法类的目的。

输入:

下一步:回到AnotherAty中将获取方式改成Parcelable。

运行~成功!

  ============================分割线===============================

获取Activity的返回参数:

进入AnotherAty的xml视图文件中,将其改成LinearLayout的布局方式。

并加入这一句改成垂直布局。

在视图中拖入一个输入文本框。

再加入一个Button:

用于将数据传递回去。

同样的将Activity_main.xml视图文件同样改为LinearLayout

放入一个Text View:

用来呈现结果。

回到MainActivity中,定义一个Text View:

到AnotherAty中写入按钮,并将接收文本框定义好:

给按钮添加一个监听事件。

回到MainActivity中,写入启动语句:

startActivityForResult(i,0);

并添加一个函数:

 

定义好返回的参数;

忘了还有这句。

 

转载于:https://www.cnblogs.com/jacoket/p/8589791.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值