林getAssets()試圖從加載custome字體 「資產\字體」 文件夾獲取字體與getResources()從資產文件夾返回NullPointerException異常
這是我的 「TypefaceSingelton」 類代碼:
public class TypefaceSingelton {
private static TypefaceSingelton instance = new TypefaceSingelton();
private TypefaceSingelton() {}
public static TypefaceSingelton getInstance() {
return instance;
}
public static Typeface getFont() {
return Typeface.createFromAsset(AppContext.getAppContext().
getResources().getAssets(), "fonts/Myfont.otf");
}
}
和我的 「AppContext」 類:
public class AppContext extends Application {
public static Context context;
@Override
public void onCreate(){
super.onCreate();
AppContext.context = getApplicationContext();
}
public static Context getAppContext() {
return AppContext.context;
}
}
,我該如何使用它我的MainActivity內:
public class MainActivity extends Activity {
private final Typeface FontTF = TypefaceSingelton.getFont();
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
final AutoCompleteTextView CtextView = (AutoCompleteTextView) findViewById(R.id.autoComplete);
CtextView.setTypeface(FontTF);
,並在 「Typeface.createFromAsset」 裏面TypefaceSingelton給出了異常:
08-16 07:55:51.834: E/AndroidRuntime(3109): Caused by: java.lang.NullPointerException
08-16 07:55:51.834: E/AndroidRuntime(3109): at com.test.TypefaceSingelton.getFont(TypefaceSingelton.java:20)
08-16 07:55:51.834: E/AndroidRuntime(3109): at com.test.MainActivity.onCreate(MainActivity.java:133)
08-16 07:55:51.834: E/AndroidRuntime(3109): at android.app.Activity.performCreate(Activity.java:5104)
08-16 07:55:51.834: E/AndroidRuntime(3109): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1080)
即時通訊將使用 「TypefaceSingelton」,以避免性能除了
private final Typeface FontTF;
@Override
public void onCreate(Bundle savedInstanceState) {
Typeface FontTF = TypefaceSingelton.getFont();
me =「{packege} .AppContext」...> ... application>' –