2012-05-01 2 views
0

Я хочу установить шрифт для TextView, который является адаптером GridView. Мне нужно получить доступ к шрифту из папки Asset.Я хочу установить шрифт для GridView

TextView listitem = (TextView) findViewById(R.id.listitem); 
listitem.setTypeface(Typeface.createFromAsset(this.getAssets(), "DroidSans4.ttf")); 

Я столкнулся с этим перечнем ошибок.

> 
05-01 14:38:54.510: E/AndroidRuntime(9088): FATAL EXCEPTION: main 
05-01 14:38:54.510: E/AndroidRuntime(9088): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.andro.sqllite/com.andro.sqllite.UsingSQLiteActivity}: java.lang.NullPointerException 
05-01 14:38:54.510: E/AndroidRuntime(9088):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1647) 
05-01 14:38:54.510: E/AndroidRuntime(9088):  at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1663) 
05-01 14:38:54.510: E/AndroidRuntime(9088):  at android.app.ActivityThread.access$1500(ActivityThread.java:117) 
05-01 14:38:54.510: E/AndroidRuntime(9088):  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:931) 
05-01 14:38:54.510: E/AndroidRuntime(9088):  at android.os.Handler.dispatchMessage(Handler.java:99) 
05-01 14:38:54.510: E/AndroidRuntime(9088):  at android.os.Looper.loop(Looper.java:123) 
05-01 14:38:54.510: E/AndroidRuntime(9088):  at android.app.ActivityThread.main(ActivityThread.java:3683) 
05-01 14:38:54.510: E/AndroidRuntime(9088):  at java.lang.reflect.Method.invokeNative(Native Method) 
05-01 14:38:54.510: E/AndroidRuntime(9088):  at java.lang.reflect.Method.invoke(Method.java:507) 
05-01 14:38:54.510: E/AndroidRuntime(9088):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839) 
05-01 14:38:54.510: E/AndroidRuntime(9088):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597) 
05-01 14:38:54.510: E/AndroidRuntime(9088):  at dalvik.system.NativeStart.main(Native Method) 
05-01 14:38:54.510: E/AndroidRuntime(9088): Caused by: java.lang.NullPointerException 
05-01 14:38:54.510: E/AndroidRuntime(9088):  at com.andro.sqllite.UsingSQLiteActivity.onCreate(UsingSQLiteActivity.java:92) 
05-01 14:38:54.510: E/AndroidRuntime(9088):  at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047) 
05-01 14:38:54.510: E/AndroidRuntime(9088):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1611) 
05-01 14:38:54.510: E/AndroidRuntime(9088):  ... 11 more 

В этой строке кода я столкнулся эти ошибки:

listitem.setTypeface(Typeface.createFromAsset(this.getAssets(), "DroidSans4.ttf")); 

Может кто-нибудь наставит меня как установить шрифт для моего GridView? Или посоветуйте мне в этом отношении?

+0

Что такое SQLiteActivity? Вы скопировали шрифт в папке Asset? –

+0

Это мой основной класс деятельности. –

ответ

0

Похоже, вы не звонили setContentView до того TextView listitem = (TextView) findViewById(R.id.listitem);

+0

i do call setContentView .. –

0

R.id.listitem является расположение элементов сетки? Если это так, вам нужно установить шрифт в методе getView() вашего адаптера, а не в onCreate. Во время onCreate() элементы сетки еще не созданы. Вот почему findById возвращает значение null, приводящее к NPE. Отправьте код вашего адаптера, если вам нужна дополнительная помощь.

+0

да его макет gridview, который является только текстовым видом. Ваша точка действительна, и это именно то, что мне нужно. Не могли бы вы дать мне часть кода, чтобы установить шрифт getView()? –

+0

Какой адаптер вы используете? SimpleCursorAdapter? – Renard

0

см это,

public class Main extends Activity { 
    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.main); 

     Typeface tf = Typeface.createFromAsset(getAssets(), 
       "fonts/BPreplay.otf"); 
     TextView tv = (TextView) findViewById(R.id.CustomFontText); 
     tv.setTypeface(tf); 
    } 
} 
0

попробовать следующий код, чтобы применить шрифт ... но сначала вам нужно скопировать соответствующий шрифт (который вам нужно) в вашу папку активов/шрифта.

TextView listitem = (TextView) findViewById(R.id.listitem); 
font = Typeface.createFromAsset(this.getAssets(), "fonts/DroidSansFallback.ttf"); 
listitem.setTypeface(font); 
listitem.setText("जहां आप जाना चाहते हैं"); 
+0

Этот список является адаптером gridview. это не полезно. –

Смежные вопросы