我正在尝试从位于列表项(来自自定义列表适配器)中的按钮膨胀 PopupWindow,但在多个地方得到 NullPointerExceptions。
这是我试图使 PopupWindow 发生的按钮的 onClick:
public void onClick(View v) {
LayoutInflater inflater = (LayoutInflater) getContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE);
PopupWindow pw = null;
if (scores[0] == null) {
pw = new PopupWindow(inflater.inflate(R.layout.tag_table_row, null, false), 100, 100, true);
TextView tag = (TextView) v.findViewById(R.id.tag);
tag.setText("error!");
} else {
int x = tags.length;
int y = 5;
int z = Math.min(x, y);
for (int i = 0; i < z; i++) {
pw = new PopupWindow(inflater.inflate(R.layout.tag_table_row, null, false), 100, 100, true);
TextView tag = (TextView) v.findViewById(R.id.tag);
tag.setText(tags[i]);
int tag1score = Double.parseDouble(scores[i]);
TextView score = (TextView) v.findViewById(R.id.tagscore);
score.setText(Integer.toString(tag1score));
}
}
pw.showAtLocation(v.findViewById(R.id.fragment_content), Gravity.CENTER, 0, 0);
}
我在tag.setText(tags[i]);
. 如果我对此发表评论并尝试得分,我会在score.setText(Integer.toString(tag1score));
. tags[] 和 scores[] 在 onClick 之前都被初始化和填充,并且我已经测试以确保两者中的结果都是字符串而不是 null。
关于为什么会发生这种 NPE 的任何想法?