Как сохранить маркированный текст в «Редактировать текст» и извлечь его снова при открытии действия - PullRequest
0 голосов
/ 19 июня 2019

Я применил несколько вариантов форматирования в моем приложении, таких как bold, italic, highlight, underline и т. Д. Все они сохраняют состояние с помощью

Html.toHtml (editText.getText ())

и получение этого состояния через

Html.fromHtml (editText.getText ())

мелко.Но проблема в маркированном списке, поскольку маркеры не сохраняются.Что я должен сделать, чтобы сохранить маркированный текст и извлечь его снова в том же порядке (маркированный)?

Я пробовал то же самое для списка маркеров, но он не работает, в то время как другие работают правильно.


bullet.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                EditText tv = findViewById(R.id.text_write);
                int selectionStart = tv.getSelectionStart();
                int selectionEnd = tv.getSelectionEnd();
                String string = tv.getText().toString();
                String sub = string.substring(selectionStart, selectionEnd);
                String arr[] = sub.split("\n");

                int bulletGap = (int) dp(8);

                SpannableStringBuilder ssb = new SpannableStringBuilder();
                for (int i = 0; i < arr.length; i++) {
                    String line = arr[i];
                    SpannableString ss = new SpannableString(line);
                    //bullet list
                    ss.setSpan(new BulletSpan(bulletGap), 0, line.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
                    // numbered list
                    //  ss.setSpan(new NumberIndentSpan(bulletGap), 0,line.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
                    ssb.append(ss);

                    //avoid last "\n"
                    if (i + 1 < arr.length)
                        ssb.append("\n");

                }
                int start = Math.max(tv.getSelectionStart(), 0);
                int end = Math.max(tv.getSelectionEnd(), 0);
                tv.getText().replace(Math.min(start, end), Math.max(start, end),
                        ssb, 0, ssb.length());
                bullet.setBackgroundResource(R.drawable.button_menu);
            }
        });


save(editTitle.getText().toString(), Html.toHtml(editText.getText()), txt.getText().toString(), currentDateandTime, currentDateandTime);//it is saving the data in sqlite database

if (description!=null)
        editText.setText(Html.fromHtml(description));//it is saving all other states rather than bullet list.

Нет сообщения об ошибке.Всякий раз, когда я открываю задание, весь другой текст, например, выделенный жирным шрифтом, курсивом и т. Д., Выбирается правильно, но маркеры удаляются.

...