创建一个包含以下内容的活动

1)一个edittext(Commonsware RichEditText)

2)具有以下按钮的工具栏

粗体,斜体,下划线,删除线,字体,居中对齐,左对齐,右对齐,对正等

4)保存按钮

用法:

用户输入文本并通过选择整体或部分文本来对其进行编辑。效果将应用到选定的文本。当用户完成在编辑器中编辑文本后,单击“保存”按钮。一切都从RichEditText中读取,然后发送到数据库,以供以后使用带有标记和html格式的文件使用。
我使用以下代码进行保存和检索。

Spanned s = Html.fromHtml("<i>Hi</i> There ! <b>how're you ?</b>");
et.setText(s);

//--save to string--
Editable e = et.getText();
String s2 = Html.toHtml(e);

//--restore from string--
Spanned s3 = Html.fromHtml(s2);
et.setText(s3);


src:Copy to clipboard using commonsware cwac-richedit library

问题:

我必须将粗体,斜体,下划线,删除线,字体,居中对齐,左对齐,右对齐,对齐,...等应用于与操作栏按钮不同的工具栏中按钮的选定文本onClick()。在RichEditText上方的布局中进行选择时,有什么办法可以将整个视图放置在操作栏中?说水平线性布局还是一些自适应布局?

如果有人可以告诉他如何在单击按钮时将任何一种效果添加到所选文本,那将是非常有用的。我看到了以下方法,但不确定T值是多少。

myRichEditText.applyEffect(effect, value);


谢谢。

最佳答案

在RichEditText上方的布局中进行选择时,有什么办法可以将整个视图放置在操作栏中?


否。您的工具栏必须位于主UI中,例如RichEditText小部件本身上方。


  如果有人可以告诉他如何在单击按钮时将任何一种效果添加到所选文本,那将是非常有用的。


引用the documentation


  applyEffect()更改当前选择,应用或删除效果(例如,使选择变为粗体)。第一个参数是要应用的效果(例如RichEditText.BOLD)。第二个参数是效果的新值。许多效果都采用布尔值,因此applyEffect(RichEditText.BOLD, true)会将当前选择格式设置为粗体。


FWIW,我计划为RichEditText提供一个标准的工具栏选项,但是我不太可能在今年秋天之前这样做。

10-07 20:57