Sliding menu adapter(android)

362 views Asked by At

Sorry for my english. I use SlideMenu libruary and i want use new font for textview, it old version use:

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

But this i cant get my textSlide and set new font. Now i add array adapter and set this in listView. This is my all code:

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

This is my 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;
    }

}

But my item list view dont show. I dont know why. Please help

1

There are 1 answers

0
Blackbelt On BEST ANSWER

the problem is with your adapter. Since you are not providing the dataset to the super constructor, you have to override getCount and return its size. Add

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

to your adapter