android listview Schriftart und Farbe ändern

Ich habe viele verschiedene Möglichkeiten gefunden, um dies zu erreichen, bin mir aber nicht sicher, was für mein Szenario das Beste ist.

Dies ist mein Java-Code für die Listenansicht:

ListView lv;
lv = (ListView) findViewById(R.id.favList);

Dies ist der XML-Code für die Liste:

<ListView
        android:id="@+id/favList"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginBottom="40dp"
        android:layout_marginLeft="30dp"
        android:layout_marginRight="30dp"
        android:layout_marginTop="20dp"
        android:background="@android:color/transparent"
        android:cacheColorHint="@android:color/transparent"
        android:listSelector="@android:color/transparent" >
    </ListView>

Für eine Textansicht würde ich hinzufügen:

final Typeface fontList = Typeface.createFromAsset(assets, "optima-extra-black.ttf");
lv.setTypeface(fontList);

Dies funktioniert jedoch nicht für Listenansichten. Wie ändere ich in diesem Fall meine Schriftart?

Oke, ich bin fast da ... Ich muss auf meine Assets zugreifen, kann aber nicht über meinen benutzerdefinierten Adapter. Ich habe versucht mitfinal AssetManager assets = this.getAssets(); aber das bringt mich nicht weiter ..

Wie geht man damit um?

    class Myadapter extends BaseAdapter {

    LayoutInflater lif;
    ImageView sideArrow;
    TextView tv;


    public Myadapter(Context ctx) {
        lif = (LayoutInflater) ctx
                .getSystemService(LAYOUT_INFLATER_SERVICE);

    }

    @Override
    public int getCount() {

        return favarets.size();
    }

    @Override
    public Object getItem(int position) {
        return position;
    }

    @Override
    public long getItemId(int position) {
        return position;
    }

    @Override
    public View getView(int position, View convertView, ViewGroup parent) {

        View vi = convertView;
        if (convertView == null)
            vi = lif.inflate(R.layout.inflate, null);
        sideArrow = (ImageView) vi.findViewById(R.id.imageViewsidemark);

        tv = (TextView) vi.findViewById(R.id.textFav);
        tv.setText(favarets.get(position));
        final AssetManager assets = this.getAssets();
        final Typeface tvFont = Typeface.createFromAsset(assets, "OPTIMA.TTF");
        tv.setTypeface(tvFont);

        tv.setTextColor(Color.BLACK);

        return vi;

Antworten auf die Frage(4)

Ihre Antwort auf die Frage