在android中向Commonware RichEditText添加自定义控件

在android中向Commonware RichEditText添加自定义控件,android,custom-controls,commonsware-cwac,Android,Custom Controls,Commonsware Cwac,创建一个包含以下内容的活动: 1) edittext(Commonware RichEditText) 2) 包含以下按钮的工具栏 粗体、斜体、下划线、删除线、字体、中心对齐、左对齐、右对齐、对齐等 4) 保存按钮 用法: 用户输入文本并通过选择文本作为整体或部分进行编辑。效果应用于所选文本。当用户在编辑器中编辑完文本后,他单击“保存”按钮。所有内容都从RichEditText中读取并发送到数据库,以便以后使用html中的标记和格式。 我使用以下代码进行保存和检索 Spanned s = Htm

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

1) edittext(Commonware 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);
谢谢

当在RichEditText上方的布局中进行选择时,是否有任何方法可以将整个视图放置在actionbar中

不需要。您的工具栏需要位于主UI中,例如
RichEditText
小部件本身的上方

如果有人能告诉他如何在点击一个按钮时将任何一种效果添加到选定的文本中,那将是非常有帮助的

引述:

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


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

是否有任何情况需要通过“false”来添加特定效果?除了actionbar或actionbarsherlock之外,是否有任何方法可以在RichEditText上方添加这些按钮。?我的意思是像一个工具条。我想在文本上方设置一个浮动工具栏,这就是我提出这个问题的原因。(很抱歉有多条评论,只需5分钟即可编辑)@AndroidKid:“是否有任何情况需要我们传递一个‘false’来添加特定效果?”——当您想要摆脱它时。要将粗体应用于当前选择,请使用
applyEffect(RichEditText.bold,true)
。要从当前选择中删除粗体,请使用
applyEffect(RichEditText.bold,false)
。“有没有办法在RichEditText上方添加这些按钮”--使用垂直的
线性布局
来固定工具栏和
RichEditText
。“我正在考虑浮动工具栏”--将工具栏作为晚于
RichEditText
的子工具栏使用
RelativeLayout
。有没有办法从控件本身获取工具栏?我在操作栏中已经有了几个按钮。编辑控件似乎有点拥挤。您还应该考虑添加一个特殊的方法,如“代码> ReHeDDIT.TraveTrimeTeX()/代码>,以获得所有格式的输入文本。“有什么方法可以从控件本身获得工具栏吗?”——“控件”目前没有工具栏。即使我添加了工具栏,它也将是一个单独的自定义视图。
RichEditText
现在使用的是一种操作模式(也称为上下文操作栏),而不是工具栏
视图
。“您还应该考虑添加一个特殊的方法,例如ReffEdTrime.GeTrCHITCH()以获得所有格式的输入文本”——它已经存在。它被称为
getText()
,它是从
EditText
继承的。
myRichEditText.applyEffect(effect, value);