Android-кнопка текст и HTML - PullRequest
7 голосов
/ 15 июля 2009

как мне использовать html в кнопке виджета Android?

Ответы [ 3 ]

8 голосов
/ 15 июля 2009

Вы должны иметь возможность использовать Html.fromHtml() для преобразования необработанного HTML в Spanned объект, который можно использовать при вызове setText() на вашей кнопке. Как говорится в документации Html, «поддерживаются не все теги HTML».

3 голосов
/ 31 января 2010

Ответ Марка, как обычно, точен. Вот более полный пример для справки (это запутанная часть документации). (И да, я знаю, что этот пример не использует Button, но это тот, который мне пригодился, и это та же идея.)

Строка должна быть ресурсом:

 <?xml version="1.0" encoding="utf-8"?>
    <resources>
    <string name="mystring">    
        You can use regular text, and escaped HTML markup
        &lt;br /&gt;&lt;br /&gt;
        A simple BOLD example &lt;b&gt;StackOverflow&lt;/b&gt;.
    </string>
    </resources>

Затем получите ресурс и используйте Html.fromHtml() (если вы используете EditText, вам также нужно убедиться, что буфер установлен в 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);
       }  
       ...

Наконец, обратите внимание, что весь HTML, конечно, не работает. Поэтому, в зависимости от ваших требований, это может быть не совсем полезным. См. Также эту проблему , если вы пытаетесь использовать ссылку (тег привязки) и хотите, чтобы она реагировала на нажатие. Для простых вещей, см. Linkify .

1 голос
/ 01 февраля 2011

Эти два ответа также действительны, вы также можете сделать это следующим образом. Я пытался сделать что-то подобное и обнаружил, что мой html вместе с CSS не форматировался правильно, поэтому я взял строку и загрузил ее в веб-представление так:

 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");

и он распознал все стили и правильно отформатировал HTML. Больше от андроида справка ЗДЕСЬ

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...