访问片段中的资产

时间:2018-07-16 08:36:16

标签: android android-fragments android-assets android-typeface

我在资产文件夹中有一个字体,并且在我的片段中这样称呼它:

Typeface custom_font = Typeface.createFromAsset(getActivity().getAssets(), "fonts/myFont.otf");

但是我收到了一个警告,说getAssets()可能返回null。

我做了一些研究,发现了this个问题/答案。我目前已经有了活动上下文。


我想做的是在Activity中添加以下方法:

public static Typeface getMyFont(Activity context){
    return Typeface.createFromAsset(context.getAssets(),  "fonts/myFont.otf");
}

然后从我的片段中这样调用它:

mTextView.setTypeface(Activity.getMyFont(getActivity()));

通过上述操作,我没有收到任何警告,但是我不确定这是否正确,所以..

我的问题是:
我应该忽略棉绒警告吗?我应该像上面那样做吗,还是有正确的做事方法?

2 个答案:

答案 0 :(得分:1)

  

但是我收到了一个警告,说getAssets()可能返回null。

如果片段当前未附加到父活动,则def new_user_notification(user) @user = user mail(to: @user.email, subject: "Welcome") end 中的

可以返回Fragments

解决方案1::检查您的活动是否不为空

getActivity()

解决方案2::您可以使用 null 获取上下文

 if(getActivity()!=null){
            Typeface custom_font = Typeface.createFromAsset(getActivity().getAssets(), "fonts/myFont.otf");
 }

答案 1 :(得分:0)

我认为您应该使用以下代码:

Typeface myFont = Typeface.createFromAsset(getActivity().getAssets(), "myFont.ttf");
mTextView.setTypeface(myFont)

工作成功。