提问人:Zed 提问时间:2/22/2020 更新时间:2/22/2020 访问量:19
为什么每次实现此逻辑时我的应用程序都会崩溃?
Why is My App Crashing everytime I implement this Logic?
问:
应用程序中有多个 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
我做错了什么,如何解决这个问题?
答:
1赞
Lena Bru
2/22/2020
#1
第一个反转: 从
if (a1.equalsIgnoreCase("AltE")) {
自
if ("AltE".equalsIgnoreCase(a1)) {
因为“AltE”不会等于 null 会让它停止崩溃。
此外,崩溃的原因是 getStringExtra 返回默认 null
您正在检查每个标题,而不仅仅是一个标题。
因此,根据你的故事,你没有价值。"Alt.English2013"
评论