2015-06-11 2 views
1

Извините за мой английский. Я использую SlideMenu libruary и я хочу использовать новый шрифт для TextView, его старая версия использование:Скользящий адаптер меню (android)

((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; 
    } 

} 

Но мой элемент списка вид не показывают. Я не знаю, почему. Пожалуйста, помогите

+0

Если я правильно вы пытаетесь создать список активности с сползая меню? Разве это не так? –

+0

@abdulrahmank да, это – pot34731

ответ

2

проблема с вашим адаптером. Поскольку вы не предоставляете набор данных супер-конструктору, вам необходимо переопределить getCount и вернуть его размер. Добавить

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

к адаптеру

+0

Спасибо большое! Это работает! – pot34731

Смежные вопросы