B4A Library RichEditor view

Hello all ,

A wrapper for this library https://github.com/wasabeef/richeditor-android


SMMRichEditor
Author:
SMM
Version: 0.05
  • SMMRichEditor
    Events:
    • _textchanged (new As String)
    Fields:
    • ba As BA
    Methods:
    • AddToParent (Parent As ViewGroup, left As Int, top As Int, width As Int, height As Int)
    • BringToFront
    • DesignerCreateView (base As PanelWrapper, lw As LabelWrapper, props As Map)
    • Initialize (EventName As String)
    • Invalidate
    • Invalidate2 (arg0 As Rect)
    • Invalidate3 (arg0 As Int, arg1 As Int, arg2 As Int, arg3 As Int)
    • IsInitialized As Boolean
    • RemoveView
    • RequestFocus As Boolean
    • SendToBack
    • SetBackgroundImage (arg0 As Bitmap)
    • SetColorAnimated (arg0 As Int, arg1 As Int, arg2 As Int)
    • SetLayout (arg0 As Int, arg1 As Int, arg2 As Int, arg3 As Int)
    • SetLayoutAnimated (arg0 As Int, arg1 As Int, arg2 As Int, arg3 As Int, arg4 As Int)
    • SetVisibleAnimated (arg0 As Int, arg1 As Boolean)
    • clearFocusEditor
    • focusEditor
    • insertImage (path As String, alt As String)
    • insertLink (url As String, text As String)
    • insertTodo
    • loadCSS (cssFile As String)
    • redo
    • removeFormat
    • setAlignCenter
    • setAlignLeft
    • setAlignRight
    • setBlockquote
    • setBold
    • setBullets
    • setIndent
    • setItalic
    • setNumbers
    • setOutdent
    • setPadding (left As Int, top As Int, width As Int, height As Int)
    • setStrikeThrough
    • setSubscript
    • setSuperscript
    • setUnderline
    • undo
    Properties:
    • Background As Drawable
    • Color As Int [write only]
    • EditorBackgroundColor As Int [write only]
    • EditorFontColor As Int [write only]
    • EditorFontSize As Int [write only]
    • EditorHeight As Int [write only]
    • Enabled As Boolean
    • FontSize As Int [write only]
      Font size should have a value between 1-7
    • Heading As Int [write only]
    • Height As Int
    • Html As String
    • Left As Int
    • Padding()() As Int
    • Parent As Object [read only]
    • Placeholder As String [write only]
    • Tag As Object
    • TextBackgroundColor As Int [write only]
    • TextColor As Int [write only]
    • Top As Int
    • Visible As Boolean
    • Width As Int


Note : You have to add files in CopytoAssetsFolder.zip to your project's Assets (Add to IDE File tab)


I do not understand html images very well :D but to insert from Assets use this line

B4X:
re.insertImage("file:///android_asset"&"/txt.png","text")
re is SMMRichEditor

V 2 adds a method (re.Html) to setting or getting HTML
V 0.03 adds TextColor (not tested) requested in post #25

V0.04 added loadCSS(String cssFile) , setBullets() , setNumbers(), focusEditor() , clearFocusEditor()


V0.05 (I have updated library references above :))
 

Attachments

  • SMMRichEditor.zip
    13.2 KB · Views: 515
  • CopytoAssetsFolder.zip
    5.8 KB · Views: 518
  • SMMRichEditor2.zip
    13.3 KB · Views: 421
  • SMMRichEditor0.03.zip
    13.7 KB · Views: 307
  • SMMRichEditor0.04.zip
    13.9 KB · Views: 340
  • SMMRichEditor0.05.zip
    14 KB · Views: 462
Last edited:

apty

Active Member
Licensed User
Longtime User
Thank you very much. Can you please make a small example showing how to use the library?
 

somed3v3loper

Well-Known Member
Licensed User
Longtime User
Thank you very much. Can you please make a small example showing how to use the library?
It is simple like any other view
B4X:
Dim re as SMMRichEditor
re.Initialize("re")
Activity.Addview(re, 0,0,100%x,100%y)
re.EditorBackgroundColor=colors.Yellow
Text related methods like bold seem to have effect if some text is selected . you might want to add buttons for them.
And for textchanged listener, you add the following Sub
B4X:
Sub re_textchanged(new as string)
Log(new)
End sub
 

apty

Active Member
Licensed User
Longtime User
Thanks a lot. Sorry for the long questions, but please show me how to add a button that changes selected text to italics..I have tried
B4X:
dim bn as Button
bn.Initialize("bn")
bn.Text="Italic"
re.AddToParent(bn,10dip,10dip,100dip,50dip)

But it gives me an error
 

somed3v3loper

Well-Known Member
Licensed User
Longtime User
Thanks a lot. Sorry for the long questions, but please show me how to add a button that changes selected text to italics..I have tried
B4X:
dim bn as Button
bn.Initialize("bn")
bn.Text="Italic"
re.AddToParent(bn,10dip,10dip,100dip,50dip)

But it gives me an error
AddToParent adds richeditor to a panel or activity, you can't add views to this richeditor view .
You should replace this line with Activity.AddView(bn,…..)
And add sub bn_click to handle button clicks
For example
B4X:
Sub bn_click
     re.setItalic
End sub
 

tsteward

Well-Known Member
Licensed User
Longtime User
Infact any help using this library would be good, I dont understand how to load text into the editor, extract text from editor and then save as html
 

somed3v3loper

Well-Known Member
Licensed User
Longtime User
Infact any help using this library would be good, I dont understand how to load text into the editor, extract text from editor and then save as html
I uploaded a new version that adds Html function to set or get editor html .
 

tsteward

Well-Known Member
Licensed User
Longtime User
That's cool thank you,
Managing to get it working, how can I set Heading H1 H2 etc.
 

tsteward

Well-Known Member
Licensed User
Longtime User
Ok so I don't know anything about wraping code but as it's supported by the original github code I thought it would get wrapped as well.
 

tsteward

Well-Known Member
Licensed User
Longtime User
See the attached in mage it shows they support Header 1, Header 2 etc.

I assume like re.setbold there would be a .setheader1 or similar.
Or do I just not understand.

Also whats ba used for?

Thanks
Tony
 

Attachments

  • ScreenClip.png
    ScreenClip.png
    22.5 KB · Views: 361

somed3v3loper

Well-Known Member
Licensed User
Longtime User
See the attached in mage it shows they support Header 1, Header 2 etc.

I assume like re.setbold there would be a .setheader1 or similar.
Or do I just not understand.

Also whats ba used for?

Thanks
Tony
Did you try something like this?
B4X:
dim re as SMMRichEditor
re.Initialize("")
re.Heading = 1

Ignore ba it is used by wrapper
 

tsteward

Well-Known Member
Licensed User
Longtime User
OK thanks that works
 
Top