首页 > 解决方案 > getAssets() 在 MainActivity.class 以外的其他类中无法识别

问题描述

我无法通过 Typeface 放置自定义字体,因为在编写 createFromAsset 时没有显示 getAssets()。我用过getContext()、getActivity(),把资产放在项目里而不是src里,都没有找到soln。请告诉我错误。

package com.example.shubhojit.careersafter10th.ViewHolder;

import android.content.res.AssetManager;
import android.graphics.Typeface;
import android.support.v7.widget.RecyclerView;
import android.view.View;
import android.widget.ImageView;
import android.widget.TextView;

import com.example.shubhojit.careersafter10th.Interface.ItemClickListener;
import com.example.shubhojit.careersafter10th.R;

public class Courses_After10thViewHolder extends RecyclerView.ViewHolder implements View.OnClickListener {

    public TextView txtCourseName;
    public ImageView courseImage;
    public TextView txtCourseDuration;
    Typeface courseName;
    Typeface courseDuration;

    private ItemClickListener itemClickListener;

    public Courses_After10thViewHolder(View itemView) {
        super(itemView);

        txtCourseName = (TextView)itemView.findViewById(R.id.courses_after10th_name);
        courseImage = (ImageView)itemView.findViewById(R.id.courses_after10th_image);
        txtCourseDuration = (TextView)itemView.findViewById(R.id.courses_after10th_duration);

        courseName = Typeface.createFromAsset(context.getAssets(),"Fonts/Antipasto-RegularTrial.ttf");

        itemView.setOnClickListener(this);
    }


    public void setItemClickListener(ItemClickListener itemClickListener) {
        this.itemClickListener = itemClickListener;
    }

    @Override
    public void onClick(View view) {
        itemClickListener.onClick(view,getAdapterPosition(),false);
    }

}

标签: android

解决方案


您必须在文件夹下创建资产,Fonts然后放置Antipasto-RegularTrial.ttf

courseName = Typeface.createFromAsset(context.getAssets(),"Fonts/Antipasto-RegularTrial.ttf");
txtCourseName.setTypeface(courseName); 

推荐阅读