Come utilizzare html
in un widget di Android Pulsante?android button text and html
risposta
Dovresti essere in grado di utilizzare Html.fromHtml()
per convertire HTML non elaborato in un oggetto Spanned
che è possibile utilizzare in una chiamata setText()
sul pulsante. Come afferma la documentazione Html
, "Non tutti i tag HTML sono supportati".
La risposta di Mark è azzeccata, come al solito. Ecco un esempio più completo di riferimento (questa è una parte confusa dei documenti). (E, sì, lo so questo esempio non utilizza un Button
, ma questo è quello che avevo a portata di mano, ed è la stessa idea.)
stringa deve essere una risorsa:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="mystring">
You can use regular text, and escaped HTML markup
<br /><br />
A simple BOLD example <b>StackOverflow</b>.
</string>
</resources>
quindi ottenere la risorsa e utilizzare Html.fromHtml()
(se si utilizza un EditText
, è inoltre necessario assicurarsi che il buffer è impostato su SPANNABLE):
public class MyActivity extends Activity {
TextView myTextView;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.about);
myTextView = (TextView) this.findViewById(R.id.mytextview);
myTextView.setText(Html.fromHtml(getResources().getString(R.string.mystring)),
TextView.BufferType.SPANNABLE);
}
...
Infine, si noti che tutto il codice HTML non funziona, naturalmente. Quindi, a seconda delle tue esigenze, questo potrebbe non essere del tutto utile. Vedi anche questo issue se cerchi di usare un link (tag di ancoraggio) e vuoi che risponda al clic. Per cose semplici, vedi Linkify.
Queste due risposte sono anche valide, puoi anche farlo in questo modo. Stavo cercando di fare qualcosa della stessa natura e ho scoperto che il mio HTML con i CSS non è stato sempre formattata correttamente così ho preso la corda e caricato in una WebView come questo:
WebView webview = (WebView) findViewById(R.id.MyWebview);
String summary = "<html><body>You scored <b>192</b> points.</body></html>";
webview.loadData(summary, "text/html", "utf-8");
ed è riconosciuto tutto il stili e formattato correttamente l'html. Altro dal riferimento Android HERE
c'è un modo per farlo senza utilizzare il codice Java? Ho testo statico codificata in un file di risorse: –
user121196
XX YY
Non che io sia a conoscenza. – CommonsWare
Dovresti essere in grado di utilizzare la stessa chiamata di metodo utilizzata da @ commonsware.com e ottenere semplicemente la stringa dal file di risorse. Context.getString (R.id.x) dovrebbe essere questo –