tutorial textedit studio example etiqueta and java android textview

java - textedit - ¿Por qué String.format() no funciona en Android TextView?



textview and button android example (2)

Estoy tratando de formatear el texto en un Android TextView. Este es el código que probé en una consola Java:

System.out.println(String.format("%-7s 56", "S")); System.out.println(String.format("%-7s 56", "A(102)"));

El resultado es el esperado, mi texto está alineado a la izquierda:

S 56 A(102) 56

No, intento el mismo código en Android TextView:

mTextView.setText(String.format("%-7s 56/n", "S")); mTextView.append(String.format("%-7s 56", "A(102)"));

Y este es el resultado:

Como puede ver, la salida no es la esperada, el texto no está alineado. ¿Que estoy haciendo mal? Hay alguna otra manera de hacer esto?


El problema era que no estaba usando una fuente monoespaciada.

Una fuente monoespaciada, también llamada fuente de paso fijo, ancho fijo o no proporcional, es una fuente cuyas letras y caracteres ocupan la misma cantidad de espacio horizontal

Así que solo agregué esta línea antes de escribir en TextView:

mTextView.setTypeface(Typeface.MONOSPACE);


// I Think You Have To Achieve this in this way // XML <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="wrap_content" android:layout_height="match_parent" android:orientation="vertical" > <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="horizontal" android:padding="5dp" > <TextView android:id="@+id/txtCal" android:layout_width="wrap_content" android:layout_height="wrap_content" /> <TextView android:id="@+id/txtCalValue" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_marginLeft="5dp" android:layout_weight="1" /> </LinearLayout> </LinearLayout> // Activity TextView txtCal; TextView txtCalValue; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); txtCal = (TextView) findViewById(R.id.txtCal); txtCalValue = (TextView) findViewById(R.id.txtCalValue); txtCal.setText("S/nA(102)"); txtCalValue.setText("56/n56"); }