Différence entre setText () et append ()

Je suis curieux de savoir la différence setText() et append() de la création. Je suis en train d'écrire un très basic editor avec les numéros de ligne. J'ai un TextView pour contenir les numéros de ligne sur la gauche, de pair avec un EditText sur le droit d'organiser les données. Voici le XML:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent" 
    android:gravity="top">
    <TextView
        android:id="@+id/line_numbers"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginRight="0dip"
        android:gravity="top"
        android:textSize="14sp"
        android:textColor="#000000"
        android:typeface="monospace"
        android:paddingLeft="0dp"/>
    <EditText
        android:id="@+id/editor"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:inputType="text|textMultiLine|textNoSuggestions"
        android:imeOptions="actionNone"
        android:gravity="top"
        android:textSize="14sp"
        android:textColor="#000000"
        android:typeface="monospace"/>
</LinearLayout>

Ignorer certaines des autres choses que je fais, le plus curieux de la chose, je suis tombé sur l'espacement supplémentaire qui est apparu lorsque j'ai utilisé append() (en supposant que les choses ont été initialisé et tout le reste).

Ci-dessous, en combinaison avec le XML, définit une couleur de la frontière entre le TextView et EditText.

theEditor = (EditText) findViewById(R.id.editor);
lineNumbers = (TextView) findViewById(R.id.line_numbers);
theLineCount = theEditor.getLineCount();
lineNumbers.setText(String.valueOf(theLineCount)+"\n");

Modifier la dernière ligne de ce, bien que, et du coup, chaque ligne dans le TextView rembourrage sur la droite, avant le EditText.

lineNumbers.append(String.valueOf(theLineCount)+"\n");

C'est pas la fin du monde. mais j'étais curieux de savoir ce qui a été à l'origine de ce comportement. Depuis que je suis nouveau à la langue, la seule chose que je pouvais penser était peut-être, lors de l'ajout de jette, le Modifiable, il ajoute le rembourrage. Si je peux obtenir une réponse, je reçois à remplacer toutes ces vilaines lignes simples ajoute:

lineNumbers.setText(lineNumbers.getText().toString()+String.valueOf(newLineCount)+"\n");

source d'informationauteur CJ Harries | 2013-10-14