我正在创建一个包含多个元素的自定义ListView
- TextView
和ImageView
。
以下是我的getView
方法的一部分:
@override
public View getView(int position, View convertView, ViewGroup parent) {
View itemView = convertView;
if (itemView == null) {
itemView = getLayoutInflater().inflate(R.layout.individual_items_in_options, parent, false);
}
// Find the option to start with.
Options currentOption = optionsOfAQuestion.get(position);
// option number
TextView optionNumber = (TextView) itemView.findViewById(R.id.option_number);
optionNumber.setText(currentOption.getOptionNumber());
// option content
TextView optionContent = (TextView) itemView.findViewById(R.id.option_content);
optionContent.setText(currentOption.getOptionContent());
ImageView imageView = (ImageView)findViewById(R.id.option_icon);
imageView.setImageResource(R.drawable.icon_wrong);
我在设置图像资源的同时获得了NPE,尽管我已经在我的布局中定义了它。为什么设置图像给我NPE,而设置TextViews工作完全正常?我在这里错过了什么?
答案 0 :(得分:2)
替换此
ImageView imageView = (ImageView)findViewById(R.id.option_icon);
由此
ImageView imageView = (ImageView)itemView.findViewById(R.id.option_icon);
这会对你有所帮助
答案 1 :(得分:1)
请更新您的代码,如下所示
ImageView imageView = (ImageView) itemView .findViewById(R.id.option_icon);
imageView.setImageResource(R.drawable.icon_wrong);