添加自定义字体时无法解析方法getAssets()

pre*_*zli 4 android assets

我想在我的适配器中添加自定义字体添加BaseAdapter的按钮(LetterBtn),但我得到一个错误,getAssets()为"无法解析方法'getAssets()'".

字体在assets/fonts /文件夹中,它在我的其他Activity中工作正常.

@Override
public View getView(int position, View convertView, ViewGroup parent) {

    Button letterBtn;

    if (convertView == null) {
        letterBtn = (Button)letterInf.inflate(R.layout.letter, parent, false);
    } else {
        letterBtn = (Button)convertView;
    }

    letterBtn.setText(letters[position]);


Typeface font1 = Typeface.createFromAsset(getAssets(), 
"fonts/nexalight.otf");
letterBtn.setTypeface(font1);

    return letterBtn;

}
Run Code Online (Sandbox Code Playgroud)

Fer*_*med 8

我认为你在Adapter课堂上遇到了这个问题.更新您的Adapter课程如下:

....................
................................

public class YourAdapter extends ......
{
    .........
    ..............

    Typeface font;

    public YourAdapter(Context context, ...........)
    {
        super(context, ..........);

        font = Typeface.createFromAsset(context.getAssets(), "fonts/nexalight.otf");
    }

    ...............  
    ........................

    @Override
    public View getView(int position, View convertView, ViewGroup parent) {


        if (convertView == null) {
            convertView = letterInf.inflate(R.layout.letter, parent, false);
        } 

        Button letterBtn = (Button ) convertView.findViewById(R.id.YOUR_BUTTON_ID);

        letterBtn.setText(letters[position]);
        letterBtn.setTypeface(font);

        return convertView;
    }

    ...................
    .........................
}
Run Code Online (Sandbox Code Playgroud)