Faire un TextView à l'intérieur d'une ListView utiliser la valeur par défaut ListView de style de ligne

Mon application génère 2 listes différentes, on utilise la valeur par défaut ListView style que le ListView lignes contiennent pas de TextView à l'intérieur d'eux. L'autre liste utilise un custom CursorAdapter et a un TextView à l'intérieur de chaque ligne. Tout ce que je veux faire est de faire en sorte que les marges et la taille du texte sont exactement les mêmes pour les deux listes.

Ma première liste est à l'aide d'un ListView sans TextView à l'intérieur de chaque ligne, voici à quoi il ressemble:

Faire un TextView à l'intérieur d'une ListView utiliser la valeur par défaut ListView de style de ligne

Voici le code à générer:

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.records);

    DatabaseHandler db = new DatabaseHandler(this);
    ArrayList<String> records = db.getRecords(this);

    this.setListAdapter(new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, records));
} 

Voici le fichier xml:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent" >

    <ListView
        android:id="@android:id/list"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content" />

</LinearLayout>

Mon deuxième liste est à l'aide d'un ListView avec un TextView à l'intérieur de chaque ligne, qui est produite par une coutume " CursorAdapter, voici à quoi il ressemble:

Faire un TextView à l'intérieur d'une ListView utiliser la valeur par défaut ListView de style de ligne

Voici le code à générer:

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.achievements);

    DatabaseHandler db = new DatabaseHandler(this);
    Cursor cursor = db.getAchievements(this);
    AchievementAdapter cursorAdapter = new AchievementAdapter(this, cursor);

    this.setListAdapter(cursorAdapter);
} 

private class AchievementAdapter extends CursorAdapter {
    public AchievementAdapter(Context context, Cursor c) {
        super(context, c);
    }

    @Override
    public void bindView(View v, Context context, Cursor cursor) {
        TextView tv = (TextView) v.findViewById(R.id.achView1);

        if(cursor.getString(cursor.getColumnIndex("completed")).equals("yes")) {
            tv.setText(cursor.getString(cursor.getColumnIndex("name"))+" (completed)");
            tv.setTextColor(Color.GREEN);
        }
        else {
            tv.setText(cursor.getString(cursor.getColumnIndex("name")));
        }
    }

    @Override
    public View newView(Context context, Cursor cursor, ViewGroup parent) {
        LayoutInflater inflater = LayoutInflater.from(context);
        View v = inflater.inflate(R.layout.achievements_item, parent, false);
        return v;
    }
}   

Voici les réalisations de fichier xml:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent" >

    <ListView
        android:id="@android:id/list"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content" />

    <TextView
        android:id="@+id/android:empty"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:text=""/>

</LinearLayout>

Ici est la achievements_item xml:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent" >

    <TextView
        android:id="@+id/achView1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textAppearance="?android:attr/textAppearanceLarge"
        android:text="" />

</LinearLayout>

Fondamentalement, je veux juste ces 2 listes de regarder exactement la même chose. Est-il un moyen de faire en sorte que les TextView hérite par défaut ListView de style de ligne? Ou vais-je avoir pour jouer avec les marges et tout moi-même?

OriginalL'auteur scarhand | 2012-05-31