获取 Intent.getstringExtra() 的 null 值

Getting null value for Intent.getstringExtra()

提问人:Sujit Maiti 提问时间:1/2/2020 最后编辑:Md. AsaduzzamanSujit Maiti 更新时间:1/2/2020 访问量:370

问:

我无法弄清楚为什么应用程序在设备上崩溃并出现以下错误:

msg: java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.String android.content.Intent.getStringExtra(java.lang.String)' on a null object reference

在 Android Studio 上,没有错误显示,构建成功。我通过以下方式传递 url 以启动 WebActivity,我什至检查字符串是否为 null

MainActivity.java

if (getIntent().getExtras() != null) {
   if (getIntent().getStringExtra("LINK") != null) {
       Intent web = new Intent(this, WebActivity.class);
       web.putExtra("link", getIntent().getStringExtra("LINK"));
       MainActivity.this.startActivity(web);
       finish();
    }
}

WebActivity.java

Intent wb = getIntent();
final String url = wb.getStringExtra("link");
\\onCreate() method
if (savedInstanceState == null) {
    webView.post(() -> webView.loadUrl(url));
}

是因为 WebActivity 中的 getIntent() 在 onCreate() 方法之外吗

Android-intent nullPointerException

评论


答:

1赞 user12517395 1/2/2020 #1

将此代码移入其中onCreate

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.your_layout);

    Intent wb = getIntent();
    final String url = wb.getStringExtra("link");

    if (savedInstanceState == null) {
        webView.post(() -> webView.loadUrl(url));
    }
}