TabViewにアイコンを追加したいのですが、カスタムTabAdapterでgetResources()
を使用できないため、行き詰まります。すでにgetAplicationContext().getResources, getActivity.getResources()
を使おうとしていますが、まだ"cannot resolve method"
というメッセージが表示されています。誰かが私を助けることができますか?
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;
}
}
ありがとうございました!
可変コンテキストを作成する
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().
この方法を試してください
Drawable image = getActivity().getResources().getDrawable(imageResId[position]);
または
Drawable image = getContext().getResources().getDrawable(imageResId[position]);