Wie programmgesteuert Schriftart-Schriftart zu Spinner-Text festlegen?

Ich habe eine ttf-schriftart-Datei in meinen Ordner "assets". Ich weiß, wie Sie es für die textviews mit:

Typeface externalFont=Typeface.createFromAsset(getAssets(), "fonts/HelveticaNeueLTCom-Lt.ttf");
textview1.setTypeface(externalFont);

Habe ich definiert Aussehen für meine spinner-text in einem eigenen xml-Datei (wie üblich haben Sie in android):

<?xml version="1.0" encoding="utf-8"?>
<TextView xmlns:android="http://schemas.android.com/apk/res/android" 
android:id="@+android:id/text1"
style="?android:attr/spinnerItemStyle"
android:singleLine="true"
android:textColor="#ffffff"
android:gravity="center" 
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:ellipsize="marquee" />

Ich kann einfach nicht auf diese textview aus dem code, ich bekomme immer null-pointer-exceptions. E. g. ich habe versucht:

TextView spinner_text=(TextView)findViewById(R.id.text1);
spinner_text.setTypeface(externalFont);

Ist es möglich, zu wählen, meine externe schriftart auch für meine spinner-text definiert, in einem eigenen xml?

Danke.

EDIT mit Antwort:

Dies funktioniert:

String [] items = new String[2];
    items[0]="Something1";
    items[1]="Something2";

ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,
                    R.layout.spinaca, items) {

         public View getView(int position, View convertView, ViewGroup parent) {
                 View v = super.getView(position, convertView, parent);

                 Typeface externalFont=Typeface.createFromAsset(getAssets(), "fonts/HelveticaNeueLTCom-Lt.ttf");
                 ((TextView) v).setTypeface(externalFont);

                 return v;
         }


         public View getDropDownView(int position,  View convertView,  ViewGroup parent) {
                  View v =super.getDropDownView(position, convertView, parent);

                 Typeface externalFont=Typeface.createFromAsset(getAssets(), "fonts/HelveticaNeueLTCom-Lt.ttf");
                 ((TextView) v).setTypeface(externalFont);
                 v.setBackgroundColor(Color.GREEN);

                 return v;
         }
 };


     adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);                                 
     spinner.setAdapter(adapter);

Kann es notwendig sein, fügen Sie

import android.view.ViewGroup;

Zur Liste der Importe an den Anfang der Datei. Für einige Grund, warum Eclipse nicht machen, dieser Vorschlag, wenn es nicht erkennt, die ViewGroup-Klasse eingebunden in den code.

InformationsquelleAutor der Frage DixieFlatline | 2011-03-30

Schreibe einen Kommentar