簡體   English   中英

滑動菜單適配器(Android)

[英]Sliding menu adapter(android)

對不起我的英語不好。 我使用SlideMenu libruary,我想為textview使用新字體,舊版本使用:

((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並返回其大小。

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

連接到您的適配器

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM