Android:如何设置字体数组

时间:2014-12-31 18:13:39

标签: android nullpointerexception typeface

在我的应用中,用户可以从服务器下载不同的字体,从而可以为其文本视图框选择不同的字体。

下载的字体存储在文件夹中。因此,计算字体的数量,动态数量的radiobuttons膨胀,以便让用户选择他们喜欢的字体。

对于可变数量的字体,因此我声明了 Typeface[] dtf;

以及稍后

for (int z = 1; z <=num_radio; z++)
{
    dtf[z] = Typeface.createFromFile(tyeface_path[z]); //Line 534
}

问题:

以上代码导致NPE如下:

01-01 01:59:24.910: E/AndroidRuntime(9639): Caused by: java.lang.NullPointerException
01-01 01:59:24.910: E/AndroidRuntime(9639):     at com.abc.abc.Doodlz2.onResume(Doodlz2.java:534)

我应该如何正确地声明字体?

dtf[z] =new Typeface(this); does not work

1 个答案:

答案 0 :(得分:0)

如果您使用的是这样的Object数组,则需要指定大小。

Typeface[] dtf = new Typeface[size];

或者你可以改用List。

List<Typeface> typefaceList = new ArrayList<Typeface>();
for(int z = 1; z <=num_radio; z++){
    typefaceList.add(Typeface.createFromFile(tyeface_path[z]));
}

另外,请确保tyeface_path [z]不为空。

祝你好运!