为什么每次实现此逻辑时我的应用程序都会崩溃?

Why is My App Crashing everytime I implement this Logic?

提问人:Zed 提问时间:2/22/2020 更新时间:2/22/2020 访问量:19

问:

应用程序中有多个 cardView,单击每张卡片都会启动新的 Intent。同样在启动 Intent 之前,我正在传递一个 puExtra。

  final String label = holder.text_label.getText().toString().trim();

    holder.cardView.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            if (position == 0 && label.equalsIgnoreCase("Alt. English")) {

                Intent intent = new Intent(context, ShowPDFActivity.class);
                intent.putExtra("AltE","AltE");
                context.startActivity(intent);

            }
        }
    });

在我的另一个活动中,我创建了一个标题数组,其中存储了在此活动中收到的所有可能值。

 String[] title = {
            "AltE",
            "Alt.English2013"
    };

现在我正在运行一个 for 循环来查看接收到什么值并相应地执行这些功能。

Intent intent = getIntent();
    for (int i = 0; i <= title.length; i++) {
        Log.e("Length ", String.valueOf(title.length));

        a1 = intent.getStringExtra(title[i]);

        if (a1.equalsIgnoreCase("AltE")) {

            String pdf = "https://www.researchgate.net/STUDIES.pdf";
            webView.loadUrl("http://docs.google.com/viewer?url=" + pdf);

            webView.setWebViewClient(new WebViewClient() {

                public void onPageFinished(WebView view, String url) {
                    // do your stuff here
                    progressbar.setVisibility(View.GONE);
                }
            });


        } else {
            Toast.makeText(this, "In Else", Toast.LENGTH_SHORT).show();
        }

但是应用程序崩溃并显示此消息:

     Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'boolean java.lang.String.equalsIgnoreCase(java.lang.String)' on a null object reference

我做错了什么,如何解决这个问题?

Android-intent nullPointerException

评论


答:

1赞 Lena Bru 2/22/2020 #1

第一个反转: 从

if (a1.equalsIgnoreCase("AltE")) {

   if ("AltE".equalsIgnoreCase(a1)) {

因为“AltE”不会等于 null 会让它停止崩溃。

此外,崩溃的原因是 getStringExtra 返回默认 null 您正在检查每个标题,而不仅仅是一个标题。 因此,根据你的故事,你没有价值。"Alt.English2013"