首页 > onActivityResult()中log能打印intent携带的值 但是setText()的时候没有效果

onActivityResult()中log能打印intent携带的值 但是setText()的时候没有效果


@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无法设置就得看那段代码是否有走到:

  1. 查一查IsImgModified这个变量的赋值情况;

  2. 那个断点看看setText那里有没有走到;


你从intent里拿到的值是IsNameModified,在做判断时用的是IsImgModified,如果这个IsImgModified是false的话,if语句里面的代码不会执行的吧?

Logs.e("result", IsNameModified + "" );
一般用的不是Log吗?
(个人见解)


  1. IsNameModified 为false,并没有拿到传来的值;

  2. IsNameModified 为全局变量,重名了,默认就为false;


boolean可以直接和字符串拼接吗?
试试String.valueOf。


IsImgModified默认是false 没赋值肯定不会走下一步


将 super.onActivityResult 这句注释。然后从下一句进行断点调试。


IsNameModified和IsImgModified是不同的两个变量吗?如果是不同的,那么IsImgModified在哪里赋值了?在onActivityResult的if判断里IsImgModified值又是什么?你有没有检查过这些问题?


IsImgModified 检查一下这个值,确定不是false.

【热门文章】
【热门文章】