21 Stimmen

Schriftgröße in ListView ändern - Android/Eclipse

Wie kann ich die Schriftgröße in einem ListView-Element ändern? In meiner main.xml-Datei habe ich verschiedene Werte für Android:textSize (pt,px,sp,dp) ausprobiert, aber nichts scheint zu funktionieren.

Hier ist, was ich derzeit für die in meinem main.xml haben:

<ListView xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@android:id/list"
    android:textColor="#ffffff"
    android:background="#000080" 
    android:layout_width="fill_parent"
    android:layout_height="wrap_content" 
    android:clickable="true" 
    android:dividerHeight="1px"
    android:layout_marginTop="5px" 
    android:textSize="8px"/>

Hier ist mein Java:

package com.SorenWinslow.TriumphHistory;

import android.app.ListActivity;
import android.os.Bundle;
import android.widget.ArrayAdapter;

public class TriumphHistory extends ListActivity {
    String[] HistoryList;

    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        ArrayAdapter<String> adapter;
        HistoryList = getResources().getStringArray(R.array.history);
        adapter = new ArrayAdapter<String> (this,android.R.layout.simple_list_item_1,HistoryList);
        setListAdapter(adapter);
    }

}

58voto

Shereef Marzouk Punkte 3202

Gehen Sie ins Layout und erstellen Sie eine neue Xml-Datei namens mylist.xml

<?xml version="1.0" encoding="utf-8"?>
<TextView xmlns:android="http://schemas.android.com/apk/res/android" 
 android:id="@android:id/text1"  
        android:paddingTop="2dip" 
        android:paddingBottom="3dip" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" /> 

jetzt im Code

        adapter = new ArrayAdapter<String> (this,android.R.layout.simple_list_item_1,HistoryList);

ändern Sie es in

        adapter = new ArrayAdapter<String> (this,R.layout.mylist,HistoryList);

28voto

yanchenko Punkte 55207

2 Wege zum Ziel:

  1. Kopieren simple_list_item_1.xml aus den Android-Quellen, ändern Sie es und verwenden Sie es dann anstelle von android.R.layout.simple_list_item_1 ;
  2. Verwenden Sie BaseAdapter und ändern Sie die Schriftgröße in getView(..) anrufen.

Ich schlage vor, Sie entscheiden sich für Letzteres.

6voto

Zou Punkte 315

Bitte erstellen Sie eine weitere Datei mit dem Namen list_item.xml

<?xml version="1.0" encoding="utf-8"?>
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent" 
    android:padding="6dp"
    android:textSize="21sp">

0voto

Steve Haley Punkte 54674

Die schnelle Antwort ist, dass Sie die Textgröße nur ändern können, wenn Sie Ihr eigenes Layout verwenden und nicht das von Android.R.layout.simple_list_item. Auf diese Weise können Sie die TextView-Eigenschaften wie die Textgröße ändern. Wenn Sie jedoch noch nicht mit Listen mit eigenen Layouts gearbeitet haben, kann die Verwendung beim ersten Mal etwas kompliziert erscheinen. Ich werde versuchen, diese Antwort später zu bearbeiten, um mehr Informationen zu liefern, aber ich schlage vor, dass Sie nach Tutorials über benutzerdefinierte Listenansichten suchen - die Ihnen zeigen, wie man inflate Ihre eigenen Layout-Dateien.

0voto

Vasile Surdu Punkte 1193

Erstellen Sie eine weitere xml-Datei für den Text, der in den Listenzeilen stehen soll.

und fügen Sie einfach Android:layout_height="?Android:attr/listPreferredItemHeight" in Ihre TextView ein :D (setzen Sie sie in ein relatives Layout statt in ein lineares Layout)

und verwenden Sie dann Ihre vorherige ListView xml für die setContentView(R.layout.listview)

und die andere xml-Datei in Ihrem ArrayAdapter-Code

ArrayAdapter adapter = new ArrayAdapter(this, R.layout.yoursecondLayoutforhelistswithText, R.id.titles, HistoryList)

die R.id.titles ist die ID für die TextView

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X