2016-12-07 10 views
-1

Я хочу добавить значки в свой TabView, но я застрял, потому что не могу использовать getResources() в пользовательском TabAdapter. Я уже пытаюсь использовать getAplicationContext().getResources, getActivity.getResources(), но я все еще вижу сообщение "cannot resolve method". Кто-то может мне помочь?Как использовать getResources() на Adapter.java

package com.glapps.mobile.codifynotes.Adapter; 
    import android.content.Context; 
    import android.graphics.drawable.Drawable; 
    import android.support.v4.app.Fragment; 
    import android.support.v4.app.FragmentManager; 
    import android.support.v4.app.FragmentStatePagerAdapter; 
    import android.text.Spannable; 
    import android.text.SpannableString; 
    import android.text.style.ImageSpan; 
    import com.glapps.mobile.codifynotes.Activity.MainActivity; 
    import com.glapps.mobile.codifynotes.Fragment.CodifyFragment; 
    import com.glapps.mobile.codifynotes.Fragment.Configuracoes.ConfiguracoesFragment; 

    import com.glapps.mobile.codifynotes.Fragment.DecodifyFragment; 
    import com.glapps.mobile.codifynotes.R; 
    public class TabAdapter extends FragmentStatePagerAdapter { 

private String[] tituloAba = {"CODIFICAR", "DECODIFICAR", "CONFIGURAÇÕES"}; 
private int[] imageResId = { 
     R.drawable.ic_action_lock_closed, 
     R.drawable.ic_action_lock_closed, 
     R.drawable.ic_action_settings_white 
}; 
public TabAdapter(FragmentManager fm) { 
    super(fm); 
} 

@Override 
public Fragment getItem(int position) { 
    Fragment fragment = null; 

    switch (position){ 

     case 0: 
      fragment = new CodifyFragment(); 
      break; 
     case 1: 
      fragment = new DecodifyFragment(); 
      break; 
     case 2: 
      fragment = new ConfiguracoesFragment(); 
    } 


    return fragment; 
} 


@Override 
public int getCount() { 
    return tituloAba.length; 
} 

@Override 
public CharSequence getPageTitle(int position) { 
    return tituloAba[position]; 
    Drawable image = getResources().getDrawable(imageResId[position]); 
    image.setBounds(0, 0, image.getIntrinsicWidth(), image.getIntrinsicHeight()); 
    SpannableString sb = new SpannableString(" "); 
    ImageSpan imageSpan = new ImageSpan(image, ImageSpan.ALIGN_BOTTOM); 
    sb.setSpan(imageSpan, 0, 1, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE); 
    return sb; 
} 


    } 

Error image

Спасибо!

ответ

0

создать переменную контекст

private Context context; 
//in the Constructor, pass the context in the parametres 
public TabAdapter(FragmentManager fm, Context context) { 
    super(fm); 
    this.context = context; 
} 

и вы можете использовать его:

context.getResources(). 
+0

Это действительно работает, спасибо. ; D –

0

Попробуйте этот путь

Drawable image = getActivity().getResources().getDrawable(imageResId[position]); 

или

Drawable image = getContext().getResources().getDrawable(imageResId[position]);