首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >intent.getStringExtra始终为"null“

intent.getStringExtra始终为"null“
EN

Stack Overflow用户
提问于 2020-05-12 10:37:54
回答 1查看 170关注 0票数 1

下面是将字符串添加到intent.putExtra的方式:

代码语言:javascript
运行
复制
    final ListView listView = findViewById(R.id.userListView);
    final ArrayList<String> usernames = new ArrayList<>();

    listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
        @Override
        public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {
            Intent intent = new Intent(getApplicationContext(), UserFeedActivity.class);
            String username = usernames.get(i);
            intent.putExtra("username", username.toString() );
            Log.i("test","username: "+username);
            startActivity(intent);

        }
    });

LogI.给了我:"... I/test: username: Chris2",所以我认为添加额外的内容是正确的

但是,在UserFeedActivity类上,如果我尝试用下面的代码读取意图:

代码语言:javascript
运行
复制
    Intent intent = new Intent();
    String username = intent.getStringExtra("username");
    Log.i("test2","username: "+username);

LogI.给了我:"... I/test2: username: null“

我也试过

代码语言:javascript
运行
复制
    Bundle bundleEx = intent.getExtras();
    Log.i("trdt3","extras: "+bundleEx);

LogI.给了我:"... I/test3: extras: null“

我是不是做错了什么?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-05-12 11:03:00

您在另一个活动中创建了一个全新的意图,因此它没有额外的内容。在新活动中,您需要调用getIntent(),如下所示

代码语言:javascript
运行
复制
Intent intent = getIntent(); // don't use 'new Intent()' here
String username = intent.getStringExtra("username");
Log.i("test3","username: "+username);

请注意,调用getStringExtra只是在内部调用getExtras(),然后调用getString(...),因此它与使用getIntent().getExtras().getString(...)相同

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61742829

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档