将图像资源动态设置为列表项

时间:2016-02-19 12:55:06

标签: android

我正在创建一个包含多个元素的自定义ListView - TextViewImageView

以下是我的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工作完全正常?我在这里错过了什么?

2 个答案:

答案 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);