Android:如何使用BaseAdapter类而没有nullpointerexception

时间:2015-09-14 22:02:53

标签: java android nullpointerexception

我知道很多人已经厌倦了与nullpointerexception相关的问题,所以我一次又一次地想是否要问这个问题。我读了一小时的以下短代码,我仍然无法弄清楚为什么会抛出nullpointerexception ..

这是ImageAdapter类..

public class ImageAdapter extends BaseAdapter {
    private Context mContext;
    private LayoutInflater mInflater;

    public ImageAdapter(Context context) {
        mInflater = LayoutInflater.from(context);
        mContext = context;
    }

    @Override
    public int getCount() {
        return mThumbIds.length;
    }

    @Override
    public Object getItem(int position) {
        return null;
    }

    @Override
    public long getItemId(int position) {
        return 0;
    }

    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
        ViewHolder holder;

        if(convertView == null) {
            convertView = mInflater.inflate(R.layout.dialog_addprofile, null);
            convertView.setLayoutParams(new GridView.LayoutParams(90, 90));

            holder = new ViewHolder();
            holder.title = (TextView) convertView.findViewById(R.id.categoryText);
            holder.icon = (ImageView) convertView.findViewById(R.id.categoryimage);

            convertView.setTag(holder);

        } else {
            holder = (ViewHolder) convertView.getTag();
        }

        holder.icon.setAdjustViewBounds(true);
        holder.icon.setScaleType(ImageView.ScaleType.CENTER_CROP);
        holder.icon.setPadding(8, 8, 8, 8);
        holder.title.setText(categoryContent[position]);
        holder.icon.setImageResource(mThumbIds[position]);

        return convertView;
    }

    class ViewHolder {
        TextView title;
        ImageView icon;
    }

    private Integer[] mThumbIds = {
            android.R.drawable.ic_menu_gallery, android.R.drawable.ic_menu_camera
    };

    private String[] categoryContent = {
        "Gallery", "Camera"
    };
}

这里是logcat的一部分。

java.lang.NullPointerException
            at com.marshall.thequizshow.ui.adapter.ImageAdapter.getView(ImageAdapter.java:56)

根据logcat,getView方法中if-else语句下面的结尾部分似乎有问题。我真的很难弄清楚应该修复什么,但我还是输了。有人请帮帮我吗?

1 个答案:

答案 0 :(得分:0)

constructor

中添加此行
inflater = (LayoutInflater)context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);