android - onActivityResult()中log能打印intent携带的值 但是setText()的时候没有效果
巴扎黑
巴扎黑 2017-04-17 16:41:21
[Android讨论组]

@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+"");
            }
        }
    }
巴扎黑
巴扎黑

全部回复(8)
PHP中文网

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

天蓬老师

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

迷茫

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

伊谢尔伦

你的代码里都没有说IsImgModified这个变量在哪里赋值的,能打印出intent的值那就表明返回的数据是有的;setText无法设置就得看那段代码是否有走到:

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

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

高洛峰

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

高洛峰

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

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

黄舟

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

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

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

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号