构造函数Object(Context,int,List <draweritem>)未定义

时间:2015-04-29 16:48:03

标签: java android adt

请帮我解决这个问题。我正在为我的应用程序制作一个抽屉,我从ADT收到这些错误:

  • 构造函数Object(Context,int,List)未定义

  • CustomDrawerAdapter类型的方法getView(int,View,ViewGroup) 必须覆盖或实现超类型方法

这是我的CustomDrawerAdapter类的代码:

package com.example.ico;
import java.util.List;
import android.app.Activity;
import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ArrayAdapter;
import android.widget.ImageView;
import android.widget.TextView;

public class CustomDrawerAdapter {

     Context context;
     List<DrawerItem> drawerItemList;
     int layoutResID;

     public CustomDrawerAdapter(Context context, int layoutResourceID, List<DrawerItem> listItems) {
         super(context, layoutResourceID, listItems);
           this.context = context;
           this.drawerItemList = listItems;
           this.layoutResID = layoutResourceID;

     }

     @Override
     public View getView(int position, View convertView, ViewGroup parent) {
           // TODO Auto-generated method stub

           DrawerItemHolder drawerHolder;
           View view = convertView;

           if (view == null) {
                 LayoutInflater inflater = ((Activity) context).getLayoutInflater();
                 drawerHolder = new DrawerItemHolder();

                 view = inflater.inflate(layoutResID, parent, false);
                 drawerHolder.ItemName = (TextView) view
                             .findViewById(R.id.drawer_itemName);
                 drawerHolder.icon = (ImageView) view.findViewById(R.id.drawer_icon);

                 view.setTag(drawerHolder);

           } else {
                 drawerHolder = (DrawerItemHolder) view.getTag();

           }

           DrawerItem dItem = (DrawerItem) this.drawerItemList.get(position);

           drawerHolder.icon.setImageDrawable(view.getResources().getDrawable(
                       dItem.getImgResID()));
           drawerHolder.ItemName.setText(dItem.getItemName());

           return view;
     }

     private static class DrawerItemHolder {
           TextView ItemName;
           ImageView icon;
     }


}

1 个答案:

答案 0 :(得分:3)

要解决所有问题,您需要让您的类扩展ArrayAdapter。

public class CustomDrawerAdapter extends ArrayAdapter {