Я пытаюсь раздуть PopupWindow с кнопки, которая находится внутри элементов списка (из адаптера пользовательского списка), но я получаю NullPointerExceptions в нескольких местах.NullPointerException при раздувании PopupWindow
Вот OnClick для кнопки, где я пытаюсь сделать PopupWindow случиться:
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);
}
Я получаю NullPointerException в tag.setText(tags[i]);
. Если я прокомментирую это и попробую сделать оценки, я получаю исключение NullPointerException по адресу score.setText(Integer.toString(tag1score));
. Оба тега [] и оценки [] инициализируются и заполняются перед onClick, и я тестировал их, чтобы гарантировать, что результаты в обоих являются строками и НЕ равными нулю.
Любые мысли о том, почему этот NPE происходит?
Что произойдет, если вы просто выполните TextView tag = (TextView) findViewById (R.id.tag); 'без использования' v'? –
Я получаю ошибку «Метод findViewById (int) не определен для типа new View.OnClickListener() {}" – user2163853
В принципе вам нужно получить правильный контекст. Попытайтесь получить контекст окна/активности, где находится ваш TextView. –