Πώς μπορώ να ορίσω υπογραμμισμένο κείμενο σε ένα αρχείο xml
διάταξης Android;
Μπορεί να επιτευχθεί εάν χρησιμοποιείτε ένα αρχείο string resource xml, το οποίο υποστηρίζει ετικέτες HTML όπως <b></b>
, <i></i>
και <u></u>
.
<resources>
<string name="your_string_here">This is an <u>underline</u>.</string>
</resources>
Αν θέλετε να υπογραμμίσετε κάτι από τον κώδικα χρησιμοποιήστε:
TextView textView = (TextView) view.findViewById(R.id.textview);
SpannableString content = new SpannableString("Content");
content.setSpan(new UnderlineSpan(), 0, content.length(), 0);
textView.setText(content);
Η "αποδεκτή" απάντηση παραπάνω δεν δεν λειτουργεί (όταν προσπαθείτε να χρησιμοποιήσετε το αλφαριθμητικό όπως textView.setText(Html.fromHtml(String.format(getString(...), ...)))
.
Όπως αναφέρεται στις documentations πρέπει να αποφύγετε (κωδικοποιημένη οντότητα html) την εναρκτήρια παρένθεση των εσωτερικών ετικετών με <
, π.χ. το αποτέλεσμα θα πρέπει να μοιάζει με:
<resource>
<string name="your_string_here">This is an <u>underline</u>.</string>
</resources>
Στη συνέχεια, στον κώδικά σας μπορείτε να ορίσετε το κείμενο με:
TextView textView = (TextView) view.findViewById(R.id.textview);
textView.setText(Html.fromHtml(String.format(getString(R.string.my_string), ...)));
Περιεχόμενο αρχείου Strings.xml:
<resource>
<string name="my_text">This is an <u>underline</u>.</string>
</resources>
Το αρχείο xml διάταξης θα πρέπει να χρησιμοποιεί τον παραπάνω πόρο string με τις παρακάτω ιδιότητες του textview, όπως φαίνεται παρακάτω:
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:gravity="center_horizontal"
android:text="@string/my_text"
android:selectAllOnFocus="false"
android:linksClickable="false"
android:autoLink="all"
/>