2016-12-07 5 views
-1

Je veux ajouter des icônes sur mon TabView, mais je suis bloqué parce que je ne peux pas utiliser getResources() dans un TabAdapter personnalisé. J'essaie déjà d'utiliser getAplicationContext().getResources, getActivity.getResources(), mais je vois encore le message "cannot resolve method". Quelqu'un peut m'aider?Comment utiliser getResources() sur un adaptateur.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

Merci!

Répondre

0

créer un contexte variable de

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

et vous pouvez l'utiliser par:

context.getResources(). 
+0

Ça marche vraiment, merci. ;RÉ –

0

Essayez cette façon

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

ou

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