记一次Intent putExtra 或者说 getStringExtra 的坑 |
您所在的位置:网站首页 › getintent会空吗 › 记一次Intent putExtra 或者说 getStringExtra 的坑 |
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 |