记一次Intent putExtra 或者说 getStringExtra 的坑

您所在的位置:网站首页 getintent会空吗 记一次Intent putExtra 或者说 getStringExtra 的坑

记一次Intent putExtra 或者说 getStringExtra 的坑

2024-07-17 01:11| 来源: 网络整理| 查看: 265

  intent.setClass(Activity1.this, Activity2.class); startActivityForResult(intent, NAME_REQUEST_CODE);

跳转Activity2,在Activity2返回

Intent intent=new Intent(); intent.putExtra("name",name_edit.getText()); setResult(RESULT_OK,intent); finish();

 结果:

 这种方式获取不到,但是在setResult的时候只提供   intent.putExtra  这一种方式,应该是自动识别文本类型的。

看下源码:

//源码 public @NonNull Intent putExtra(String name, CharSequence value) { if (mExtras == null) { mExtras = new Bundle(); } mExtras.putCharSequence(name, value); return this; }

 是putCharSequence这钟方式put的,而获取值的时候是下面这种方式,两种不一样

// 源码 public String getStringExtra(String name) { return mExtras == null ? null : mExtras.getString(name); }

 因此我们要用下面这种方式获取

@Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); if (resultCode == RESULT_OK && null != data) { switch (requestCode) { case NAME_REQUEST_CODE: String name = data.getCharSequenceExtra("name")==null?"":data.getCharSequenceExtra("name").toString(); // todo break; } } }

 



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3