Приложение вылетает, когда я удаляю гарнитуру из текста редактирования - PullRequest
0 голосов
/ 22 января 2019

Как удалить жирный стиль из текста редактирования, сохранив при этом другие форматы.Мое приложение падает, когда я пытаюсь установить гарнитуру на обычный. Установка шрифта на полужирный не проблема

int startSelection = _etheadertext.getSelectionStart();
    int endSelection = _etheadertext.getSelectionEnd();
    if (startSelection > endSelection) {
        startSelection = _etheadertext.getSelectionEnd();
        endSelection = _etheadertext.getSelectionStart();
    }
    Spannable s = _etheadertext.getText();
    s.setSpan(new StyleSpan(android.graphics.Typeface.BOLD), startSelection, endSelection, 0);
    _etheadertext.setText(s);
    _etheadertext.setSelection(startSelection, endSelection);

    if(_etheadertext.hasSelection()) {

        try {
            if (_etheadertext.getTypeface().getStyle() == Typeface.NORMAL) {


                _etheadertext.setTypeface(null, Typeface.BOLD);
                Toast.LENGTH_SHORT).show();

                chk = false;
            }

            if ((_etheadertext.getTypeface().getStyle() == Typeface.BOLD) && (chk == true)) {

                _etheadertext.setTypeface(null, Typeface.NORMAL);
               // this line crashes the app

                chk = false;
            }


        } catch (Exception e) {

            Toast.makeText(getApplicationContext(), e.toString(), Toast.LENGTH_SHORT).show();

        }

    }

1 Ответ

0 голосов
/ 22 января 2019

Попробуйте использовать Bold внутри strings.xml папки.

По коду вы делаете это как:

String sourceString = "<b>" + id + "</b> " + name; mytextview.setText(Html.fromHtml(sourceString));

или:

<string name="test">
     <![CDATA[
 <b>bold!</b> normal
    ]]>
</string>

и назовите это как: textView.setText(Html.fromHtml(getString(R.string.test)));

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