@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.xxx:
Intent intent = new Intent();
intent.setClass(this, xxxActivity.class);
startActivityForResult(intent, 5);
break;
default:
break;
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (data == null)
return;
if (requestCode == 5) {
boolean IsNameModified = data.getBooleanExtra("IsNameModified", false);
Logs.e("result", IsNameModified + "" );
if (IsImgModified) {
tv_user_name.setText(IsNameModified+"");
}
}
}
你的代码里都没有说IsImgModified
这个变量在哪里赋值的,能打印出intent
的值那就表明返回的数据是有的;setText
无法设置就得看那段代码是否有走到:
查一查
IsImgModified
这个变量的赋值情况;那个断点看看
setText
那里有没有走到;
你从intent里拿到的值是IsNameModified,在做判断时用的是IsImgModified,如果这个IsImgModified是false的话,if语句里面的代码不会执行的吧?
Logs.e("result", IsNameModified + "" );
一般用的不是Log吗?
(个人见解)
IsNameModified 为false,并没有拿到传来的值;
IsNameModified 为全局变量,重名了,默认就为false;
boolean可以直接和字符串拼接吗?
试试String.valueOf。
IsImgModified默认是false 没赋值肯定不会走下一步
将 super.onActivityResult 这句注释。然后从下一句进行断点调试。
IsNameModified和IsImgModified是不同的两个变量吗?如果是不同的,那么IsImgModified在哪里赋值了?在onActivityResult的if判断里IsImgModified值又是什么?你有没有检查过这些问题?
IsImgModified 检查一下这个值,确定不是false.