如何在打开活动时将项目符号文本保存在“编辑文本”中并再次获取

时间:2019-06-19 13:46:49

标签: java android html spannablestring bullet

我在我的应用中应用了多种格式设置选项,例如bolditalichighlightunderline等,所有这些选项都通过

  

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.

没有错误信息。每当我打开活动时,所有其他文本(即粗体,斜体等)都会正确获取,但项目符号会清除。

0 个答案:

没有答案