2015-04-29 5 views
1

Пожалуйста, помогите мне решить эту проблему. Я сделать ящик для моего приложения, и я получаю эти ошибки от ADT:Объект конструктора (Context, int, List <DrawerItem>) не определен

  • Конструктор Object (Context, INT, List) не определено

  • Метод GetView (интермедиат, Вид , ViewGroup) типа CustomDrawerAdapter необходимо переопределить или реализовать метод Supertype

Это мой код класса 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

1/В настоящее время вы расширяетесь от _Object_, а не какого-либо класса, у которого есть такой конструктор, который вы пытаетесь вызвать. 2/Вероятно, класс, который вы должны продлить, имеет метод _getView_, который вы можете переопределить. – harism

+0

вы должны «расширять ArrayAdapter» – CubeJockey

ответ

3

Чтобы устранить все ваши проблемы, вам необходимо расширить класс ArrayAdapter.

public class CustomDrawerAdapter extends ArrayAdapter {