滑动菜单适配器(android)

Sliding menu adapter(android)

对不起我的英语。我使用 SlideMenu 库,我想为文本视图使用新字体,旧版本使用:

((ListView) ((Activity) context).findViewById(R.id.sidemenulistobject)).setAdapter(
                new ArrayAdapter<Object>(
                        context,
                        R.layout.sidemenu_item,
                        R.id.textSlide,
                        items
                )
        );

但是我无法获取 textSlide 并设置新字体。现在我添加数组适配器并在 listView 中设置它。这是我的全部代码:

   menu = new SlidingMenu(context);

            menu.setMode(SlidingMenu.LEFT);
            menu.setTouchModeAbove(SlidingMenu.TOUCHMODE_MARGIN);
            menu.setShadowWidth(15);
            menu.setFadeDegree(1.0f);
            menu.setShadowWidthRes(R.dimen.shadow_width);
            menu.setShadowDrawable(R.drawable.shadow);
            menu.attachToActivity((Activity) context, SlidingMenu.SLIDING_WINDOW);

            menu.setBehindWidth(400);
            menu.setMenu(R.layout.sidemenu);

    //add item in list view
        ArrayList<String> itemsObj = new ArrayList<String>();
            itemsObj.add("Новости");
            itemsObj.add("События");
            itemsObj.add("Наше меню");
            itemsObj.add("Фотографии");
            itemsObj.add("Видеозаписи");
            itemsObj.add("Контакты");
            itemsObj.add("Мой профиль");

    //get sidemenulistobject
    ListView lv = ((ListView) ((Activity) context).findViewById(R.id.sidemenulistobject));

//add adapter
    SlideAdapter adapter = new SlideAdapter((Activity) context, R.layout.sidemenu_item, itemsObj);
            lv.setAdapter(adapter);

这是我的 SlideAdapter

public class SlideAdapter extends ArrayAdapter<MenuCategoryObject>{

    ArrayList<String> listItems;
    int Resourse;
    Context context;
    LayoutInflater vi;

    private ImageLoader imageLoader;

    public SlideAdapter(Context context, int resource, ArrayList<String> listItems) {
        super(context, resource);

        this.listItems = listItems;
        Resourse = resource;
        this.context = context;

        vi = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);

    }

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

        if(convertView == null) {
            convertView = vi.inflate(Resourse, null);
            holder = new ViewHolder();

            Typeface face=Typeface.createFromAsset(context.getAssets(), "font/AvenirNext-Medium.ttf");
            holder.textSlide = (TextView) convertView.findViewById(R.id.textSlide);
            holder.textSlide.setTypeface(face);

            convertView.setTag(holder);

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

        holder.textSlide.setText(listItems.get(position));

        return convertView;
    }


    static class ViewHolder {
        public TextView textSlide;
    }

}

但是我的项目列表视图不显示。我不知道为什么。请帮助

问题出在您的适配器上。由于您没有向超级构造函数提供数据集,因此您必须覆盖 getCount 和 return 它的大小。添加

public int getCount() {
  return listItems.size();
}

到您的适配器