用intent传EditText里的值问题

用intent传EditText里的值问题

 我用intent传EditText里的值,成功了,但再次输入值时,跳转页面发现还是上一次的数据,这是怎么回事


Intent intent = new Intent(MainActivity.this, AlarmActivity.class);
 intent.putExtra("bb", aa); 


正在回答

登陆购买课程后可参与讨论,去登陆

3回答

你应该放在onResume()或onStart()中呀,因为onCreate()只在Activity首次创建时回调。所以你再次进Activity时并不回调onCreate()方法,也没走你写的方法。可以参考下图来理解它的生命周期。

http://img1.sycdn.imooc.com/climg//5926ac5c000141a205580674.jpg

  • 哈哈123413 提问者 #1
    好的,谢谢,我明白了
    2017-05-25 18:58:00
好帮手慕雪 2017-05-26 14:08:12

你确定B页面onResume()中有getIntent(),和取 intent存放的"bb"?  并且A页面传的时候放的"bb"是新值?你在传之前和收到之后,都打个log出来,试试看。

  • 提问者 哈哈123413 #1
    B页面onResume()中有getIntent()取消了intent的值,A页面再次传入是不是就新值了?
    2017-05-26 14:35:42
  • 好帮手慕雪 回复 提问者 哈哈123413 #2
    getIntent(),和取 intent存放的"bb"也要放于B页面onResume()中
    2017-05-26 18:34:17
  • 提问者 哈哈123413 回复 好帮手慕雪 #3
    @Override protected void onResume() { // TODO Auto-generated method stub super.onResume(); getIntent(); Intent intent = getIntent(); tx.setText(intent.getStringExtra("bb")); } 是这个意思么?
    2017-05-26 20:43:53
好帮手慕雪 2017-05-25 14:49:25

你好,跳转页面后,取 intent存放的"bb",并显示传来的数据放在哪个方法中了?onCreate()还是onResume() ?你是不是疏忽了它的生命周期导致的。祝学习愉快!

  • 提问者 哈哈123413 #1
    存的值放在了另一个界面TextView上了,但下一次赋值时,仍然是上一次的值。在onCreate(),其他生命周期我没弄,不咋明白
    2017-05-25 16:02:50
  • 提问者 哈哈123413 #2
    还是不行,我在页面A向页面B传值 Intent intent = new Intent(MainActivity.this, AlarmActivity.class); intent.putExtra("bb", aa); 页面B的textview1显示数据。 页面B.finish();之后 页面A再次传值给页面B的textview1.,textview1显示的还是第一次传的值
    2017-05-26 13:14:05
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师