我在我的应用中应用了多种格式设置选项,例如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.
没有错误信息。每当我打开活动时,所有其他文本(即粗体,斜体等)都会正确获取,但项目符号会清除。