在我的应用中,用户可以从服务器下载不同的字体,从而可以为其文本视图框选择不同的字体。
下载的字体存储在文件夹中。因此,计算字体的数量,动态数量的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
答案 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]不为空。
祝你好运!