无法解析符号' setTypeface'

时间:2014-10-13 19:04:43

标签: android android-studio android-typeface

// Font path
String fontPath = "fonts/jcc.ttf";

// text view label
TextView txtGhost = (TextView) findViewById(R.id.ghost);

// Loading Font Face
Typeface tf = Typeface.createFromAsset(getAssets(), fontPath);

// Applying font
txtGhost.setTypeface(tf);

在Android Studio中出现错误,"无法解析符号' setTypeface'"和"未知的课程:' tf'"。我不知道为什么,我定义了' tf'我看了很多使用setTypeface的教程。 请帮助!

编辑,这是截图,我正在使用这个确切的代码,我的字体在" assets / font / jcc.tf'下面。 http://i.imgur.com/fcDdVRz.png 抱歉没有足够的声誉来发布图片:(

2 个答案:

答案 0 :(得分:2)

经过多次试验和错误后,我找到了解决方案!

我的代码是在onCreate方法之后,一旦我把它放在里面,所有的错误都消失了!

包含错误的代码:

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
}

    // Font path
    String fontPath = "fonts/SECRCODE.ttf";

    // text view label
    TextView txtGhost = (TextView) findViewById(R.id.java1);

    // Loading Font Face
    Typeface tf = Typeface.createFromAsset(getAssets(), fontPath);

    // Applying font
    txtGhost.setTypeface(tf);

代码没有错误(注意代码现在在onCreate方法中):

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    // Font path
    String fontPath = "fonts/SECRCODE.ttf";

    // text view label
    TextView txtGhost = (TextView) findViewById(R.id.java1);

    // Loading Font Face
    Typeface tf = Typeface.createFromAsset(getAssets(), fontPath);

    // Applying font
    txtGhost.setTypeface(tf);
}

如果有人能解释为什么这样有效,那将会有很大帮助! 谢谢!

答案 1 :(得分:1)

您需要在onCreate方法中设置字体(字体)的原因是因为加载活动时onCreate方法中的Java代码会自动执行。如果没有将它放在onCreate()方法中,就没有引用/调用来执行你的代码。