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 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: 525
  • CopytoAssetsFolder.zip
    5.8 KB · Views: 526
  • SMMRichEditor2.zip
    13.3 KB · Views: 429
  • SMMRichEditor0.03.zip
    13.7 KB · Views: 319
  • SMMRichEditor0.04.zip
    13.9 KB · Views: 348
  • SMMRichEditor0.05.zip
    14 KB · Views: 474
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
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
 

apty

Active Member
Licensed User
Longtime User
Sorry...i managed to do it. Was adding it to wrong view
 

apty

Active Member
Licensed User
Longtime User
Is it possible to save the editor values to a html file?
 

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
    22.5 KB · Views: 369

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
 
Cookies are required to use this site. You must accept them to continue using the site. Learn more…