You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Android开发:getStringExtra返回NULL,请求技术协助

解决Intent getStringExtra返回NULL的问题

这个问题的根源其实特别明显——你颠倒了startActivity(intent)和intent.putExtra()的调用顺序!

当你调用startActivity(intent)时,系统已经把当前状态的Intent发送给目标Activity了,之后再调用intent.putExtra()添加的参数根本不会被同步过去,所以第二个Activity自然拿不到任何值,只会返回NULL。

修正后的第一个Activity代码:

final String countryName = name.getText().toString(); 
wikiButton.setText("WIKI "+ countryName); 
wikiButton.setOnClickListener(new View.OnClickListener() { 
    @Override 
    public void onClick(View v) { 
        Intent intent = new Intent(CountryDetails.this, WikiDetail.class); 
        // 先把参数放入Intent,再启动Activity
        intent.putExtra("countryNameKey", countryName); 
        startActivity(intent); 
    } 
}); 

第二个Activity的代码可以保留,但建议加空值判断避免崩溃:

WebView wikiWeb = (WebView) findViewById(R.id.wikiWeb); 
wikiWeb.setWebViewClient(new WebViewClient()); 
String countryName = getIntent().getStringExtra("countryNameKey");
// 防止countryName为null时拼接URL出错,做个兜底处理
if (countryName != null) {
    wikiWeb.loadUrl("https://en.wikipedia.org/wiki/" + countryName);
} else {
    // 可以显示默认页面或者错误提示
    wikiWeb.loadUrl("https://en.wikipedia.org/wiki/Main_Page");
}

核心原则就是:所有需要传递的参数,必须在启动Activity前添加到Intent中,这样参数才能被正确传递到目标页面。

内容的提问来源于stack exchange,提问作者田睿霖

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.11 08:59:20