Android Tutorial [B4X] Documentation Booklets

The B4X documentation booklets are available in PDF format, Download Link.
All files are included in the zip file in the link above, pdf booklets and all the source code.

You can also download all the source code for al booklets, SourceCode.

These booklets cover the four B4X platforms.
Some don't cover B4R because the subject is not relevant for B4R like Visual Designer.

Example projects with source code are included.

All booklets can be accessed online with the links below.
The generic link is: https://www.b4x.com/guides/BookletName/?page=xx
In this example we reach the B4xCustomViews booklet page 59: https://www.b4x.com/guides/B4xCustomViews/?page=59
The booklet names must begin with B4x (the x is in lower case) and without blank characters.
The summary of the list can be found here: Documentation
To get the source code of the example projects you can either download the entire zip file with the pdf booklets or only the source codes with the SourceCode link on top or at the end in the list below.

General booklets:
B4X Getting started
This booklet explains how to start with each B4x product (B4A, B4i, B4J and B4R).
B4X Language
This booklet explains the language for B4A, B4i, B4J and B4R.
B4X IDE
This booklet explains the Integrated Developpment Environment for B4A, B4i, B4J and B4R.
B4X Visual Designer
This booklet explains the Visual Designer for B4a, B4i and B4J.
B4X Help tools
This booklet explains some help tools for B4X. In the previous editions, its content was a chapter in the four booklets above.

Specific booklets:
B4XPages Cross-platform projects
This booklet explains how to make cross-platform projects.
B4X Custom Views + CustomViews_SourceCode, specific code for this booklet.
This booklet explains the CustomView subject for B4A, B4i and B4J.
B4X Graphics
This booklet explains Graphics for B4A, B4i, B4J, XUI And BitmapCreator.
B4X XUI
This booklet explains the XUI library which makes it easier to share code between B4A, B4J and B4i projects.
B4X SQLiteDatabase
This booklet explains the use of the SQLite library
B4X JavaObject-NativeObject
This booklet explains the use of JavaObjects (B4A and B4J) and NativeObjects (B4i)

B4R ExampleProjects
This booklet explains some B4R example projects.

SourceCode
Zip file containing all the source codes.

The current editions are 2.5
All booklets have the same edition number, to avoid confusion.
They cover:
B4A version 12.80
B4i version 8.50
B4J version 10.00
B4R version 4.00

Future booklets:
None in the to do list.

Some of these booklets exist in Spanish:

Español, Spanish.
Translated by Manuel Martinez.
 
Last edited:

AnandGupta

Expert
Licensed User
Longtime User
We are grateful to you @oleg_ , for giving your time.
These correction will help new members a lot and also the experts when they need to refer.
 

oleg_

Member
Licensed User
First of all, I want to once again express my appreciation and gratitude to Klaus for the great job he has done. I can imagine how much painstaking work and time went into getting all the many colorful illustrations and accompanying text in the right places. Truly a great job!

Now that I have finished reading B4XGettingStartedV2_5.pdf, I decided to collect all of my proposed amendments and clarifications in one place for Klaus's convenience.

I want to say right away that I cannot be 100% sure of any of my proposed amendments, so these are only my proposals, and let Klaus decide for himself which of them should be accepted and which should not. In all my proposals I am confident, let’s say, 75 percent.

I apologize for the fact that I missed all the pages dedicated to B4R, that is, 220 -241. Well, it would just be torture for me to carefully read the description of B4R, which at the moment does not interest me at all. Yes, I know that Arduino is a very useful thing, with which you can create homemade smart motors, for example, to open curtains when you press a button, and the like. All this is very interesting and useful, but now all my free time is completely occupied by other hobbies.

B4XGettingStartedV2_5.pdf, page 7
"The Basi4i-Bridge program on the device, free."
=>
"The B4i-Bridge program on the device, free."
---------------

B4XGettingStartedV2_5.pdf, page 7
"A Mac builder to compile the program, this be either."
=>
"A Mac builder to compile the program, this be either"
-------------

B4XGettingStartedV2_5.pdf, page 8
"Even, if you want to develop only in one platform it is interesting to use the B4XPages library it makes the program flow simpler especially for B4A."
=>
"Even if you want to develop only in one platform it is interesting to use the B4XPages library, it makes the program flow simpler especially for B4A."
----------------

B4XGettingStartedV2_5.pdf, page 10
"This folder, you can install it wherever you want except the platform Libraries folders."
=>
"You can install this folder wherever you want except the platform Libraries folders."
---------------

B4XGettingStartedV2_5.pdf, page 17
https://www.b4x.com/android/forum/threads/b4x-documentation-booklets.88985/post-973776
----------------------

B4XGettingStartedV2_5.pdf, page 24
"The new properties Left, Top, Width and Height are directly
updated in the Properties window.
You can also modify the Left, Top, Width and Height
properties directly in the Properties window."
=>
"The new properties Left, Top, Width and Height are automatically
updated in the Properties window.
You can also modify the Left, Top, Width and Height
properties directly in the Properties window."
------------

B4XGettingStartedV2_5.pdf, page 31
"And the result." => "And the result is this."
-------------

B4XGettingStartedV2_5.pdf, page 45
-----------------------

B4XGettingStartedV2_5.pdf, page 46
"And the result." => "And the result is this."
-------------

B4XGettingStartedV2_5.pdf, page 48
"You have Package: b4a.example.
Replace it by Package: b4a.MyFirstProgram"
=>
"You have Package: b4i.example.
Replace it by Package: b4i.MyFirstProgram"
--------------

B4XGettingStartedV2_5.pdf, page 53
"And the result!" => "And the result is this!"
-----------

B4XGettingStartedV2_5.pdf, page 63
"And the result." => "And the result is this."
-------------

B4XGettingStartedV2_5.pdf, page 65
"lblSigneMath.HorizontalCenter = 50%x
HorizontalCenter centers a view horizontally on the screen at the given value, 50%x in our case,
which means in the middle of the screen.
lblNombre1.Right = lblSigneMath.Left
Aligns the right edge of lblNombre1 on the left edge of lblSigneMath, positons lblNombre1 just
besides lblSigneMath on the left.
lblNombre2.Left = lblSigneMath.Right
Aligns the left edge of lblNombre2 on the right edge of lblSigneMath, positons lblNombre2 just
besides lblSigneMath on the right."
=>
"lblMathSign.HorizontalCenter = 50%x
HorizontalCenter centers a view horizontally on the screen at the given value, 50%x in our case,
which means in the middle of the screen.
lblNumber1.Right = lblMathSign.Left
Aligns the right edge of lblNumber1 on the left edge of lblMathSign, positons lblNumber1 just
besides lblMathSign on the left.
lblNumber2.Left = lblMathSign.Right
Aligns the left edge of lblNumber2 on the right edge of lblMathSign, positons lblNumber2 just
besides lblMathSign on the right."
----------

B4XGettingStartedV2_5.pdf, page 72
"Change the Package name to b4a.SecondProgram"
=>
"Change the Package name to b4i.SecondProgram"
-------

B4XGettingStartedV2_5.pdf, page 73.
"For the keyboard, click on the Panel all the views inside the Panel will be copied"
=>
"For the keyboard, click on the Panel. All the views inside the Panel will be copied"
-------

B4XGettingStartedV2_5.pdf, page 75
"Now you can go back to the IDE and run the program, and the result.
=>
"Now you can go back to the IDE and run the program, and the result is this."
--------

B4XGettingStartedV2_5.pdf, page 76
"Change the Package name to b4a.SecondProgram"
=>
"Change the Package name to b4j.SecondProgram"
------

B4XGettingStartedV2_5.pdf, page 77.
"For the keyboard, click on the Panel all the views inside the Panel will be copied"
=>
"For the keyboard, click on the Panel. All the views inside the Panel will be copied"
-------

B4XGettingStartedV2_5.pdf, page 78.
"In the B4i designer, right click somewhere in the dark grey rectangle."
=>
"In the B4j designer, right click somewhere in the dark grey rectangle."
-----------

B4XGettingStartedV2_5.pdf, page 79.
"Now you can go back to the IDE and run the program, and the result.
=>
"Now you can go back to the IDE and run the program, and the result is this."
-------------------

B4XGettingStartedV2_5.pdf, page 80.
"This chapter is becoming obsolete it is only useful if you want to develop only with B4A."
=>
"This chapter is becoming obsolete. It is only useful if you want to develop only with B4A."
-------------------

B4XGettingStartedV2_5.pdf, page 80.
"The path for “"java.exe”" is already set. " => "The path for "“javac.exe"” is already set."
-------------------

B4XGettingStartedV2_5.pdf, page 83.
"Scroll the screen until you see Developper options."
=>
"Scroll the screen until you see Developer options."
----------------

B4XGettingStartedV2_5.pdf, page 88.
"Using B4XPages makes the handling of Android easier"
=>
"Using B4XPages makes the handling of Android easier."
----------------------

B4XGettingStartedV2_5.pdf, page 90.
"Now you see the template for a new B4APages project."
=>
"Now you see the template for a new B4XPages project."
--------------

B4XGettingStartedV2_5.pdf, page 92.
"In the IDE, you will see on the top left two Tabs Main and B4XMainPage."
=>
"In the IDE, you will see on the top left two Tabs: Main and B4XMainPage."
--------------

B4XGettingStartedV2_5.pdf, page 92.
"Now we need to set some parameters, in the next pages

.Set the Package Name."
=>
"Now we need to set some parameters, in the next pages.

Set the Package Name."
-------------

B4XGettingStartedV2_5.pdf, page 95
"Liste of views" => "Views Tree" or "List of views"
--------------------

B4XGettingStartedV2_5.pdf, page 95
"So we hide the Script- General window to increase the size of the two other windows on top.
Click on"
=>
"So we hide the Script- General window to increase the size of the two other windows.
On top click on"
------------------

B4XGettingStartedV2_5.pdf, page 96
"To shows the views on the device you must connect the device to the Designer."
=>
"To show the views on the device you must connect the device to the Designer."
-----------

B4XGettingStartedV2_5.pdf, page 98
"The new properties Left, Top, Width and Height are directly updated in the Properties window."
=>
"The new properties Left, Top, Width and Height are automatically updated in the Properties window."
---------------

B4XGettingStartedV2_5.pdf, page 107
"This is already prepared in the “B4XPage_Created” sub we have the line
Root.LoadLayout("MainPage") which does it."
=>
"This is already prepared. In the “B4XPage_Created” sub we have the line
Root.LoadLayout("MainPage") which does it."
----------

B4XGettingStartedV2_5.pdf, page 109
"If we click on to save the project the yellow line becomes green showing a modified code but already saved."
=>
"If we click on to save the project the yellow line becomes green showing a modified code is already saved."
-------------

B4XGettingStartedV2_5.pdf, page 110
"When the Close button becomes enabled as in message box, above, the compiling and transfer is finished."
=>
"When the Close button becomes enabled as in message box above, the compiling and transfer is finished."
------------

B4XGettingStartedV2_5.pdf, page 113
"In the Abstract Designer, click on the edtResult view.
Right click on edtResult and click on ."
=>
"In the Abstract Designer, right click on the edtResult view and click on ."
-----------------

B4XGettingStartedV2_5.pdf, page 117
"And click on .
to add a new button."
=>
"And click on
to add a new button."
-----------

B4XGettingStartedV2_5.pdf, page 119
"And the result." => "And the result is this."
-------------------

B4XGettingStartedV2_5.pdf, page 121
"lblSigneMath.HorizontalCenter = 50%x
HorizontalCenter centers a view horizontally on the screen at the given value, 50%x in our case, which means in the middle of the screen.
lblNombre1.Right = lblSigneMath.Left
Aligns the right edge of lblNombre1 on the left edge of lblSigneMath, positions lblNombre1 just besides lblSigneMath on the left.
lblNombre2.Left = lblSigneMath.Right
Aligns the left edge of lblNombre2 on the right edge of lblSigneMath, positions lblNombre2 just besides lblSigneMath on the right."
=>
"lblMathSign.HorizontalCenter = 50%x
HorizontalCenter centers a view horizontally on the screen at the given value, 50%x in our case, which means in the middle of the screen.
lblNumber1.Right = lblMathSign.Left
Aligns the right edge of lblNumber1 on the left edge of lblMathSign, positions lblNumber1 just besides lblMathSign on the left.
lblNumber2.Left = lblMathSign.Right
Aligns the left edge of lblNumber2 on the right edge of lblMathSign, positions lblNumber2 just besides lblMathSign on the right."
---------------

B4XGettingStartedV2_5.pdf, page 123
"We need to know what button raised the event." => "We need to know which button raised the event."
--------------

B4XGettingStartedV2_5.pdf, page 127
"The Basi4i-Bridge program on the device, free."
=>
"The B4i-Bridge program on the device, free."
------------

B4XGettingStartedV2_5.pdf, page 128
"When you first run B4i you will be asked to enter your e-mail address, the one you used when you purchased it B4i."
=>
"When you first run B4i you will be asked to enter your e-mail address, the one you used when you purchased it (B4i)."
------------

B4XGettingStartedV2_5.pdf, page 138
"B4XPages B4X cross-platform project.
These are explained in detail in the B4XPages Cross-platform Booklet.
• B4XTurtle B4X Turtle project, a specific library.
These are explained in the forum
B4XTurtle - Library for teachers and parents."
=>
"B4XPages B4X cross-platform projects.
These are explained in detail in the B4XPages Cross-platform Booklet.
• B4XTurtle B4X Turtle project, a specific library.
This is explained in the forum
B4XTurtle - Library for teachers and parents."
-------------------

B4XGettingStartedV2_5.pdf, page 139
"You may also have a look in the Files Explorer.
And you will see that the project, is saved in the
D:\B4i\MyFirstProgram folder."
=>
"You may also have a look in the Files Explorer.
And you will see that the project is saved in the
D:\B4i\MyFirstProgram folder."
-----------------

B4XGettingStartedV2_5.pdf, page 141
"The Application label is the name of the program that will be shown on the device blow the icon."
=>
"The Application label is the name of the program that will be shown on the device below the icon."
--------------

B4XGettingStartedV2_5.pdf, page 147
"The new properties Left, Top, Width and Height are directly
updated in the Properties window.
You can also modify the Left, Top, Width and Height
properties directly in the Properties window."
=>
"The new properties Left, Top, Width and Height are automatically
updated in the Properties window.
You can also modify the Left, Top, Width and Height
properties directly in the Properties window."
------------

B4XGettingStartedV2_5.pdf, page 153
"And the result." => "And the result is this."
--------------

B4XGettingStartedV2_5.pdf, page 161
"Improvements to “My first program”."
=>
"Improvements to “My first program”:"
---------------

B4XGettingStartedV2_5.pdf, page 161
"Copy all the files and folders from MyFirstProgram
to the new SecondProgram folder and rename the program file MyFirstProgram.b4i to SecondProgram.b4i and MyFirstProgram.meta to SecondProgram.meta."
=>
"Copy all the files and folders from MyFirstProgram
to the new SecondProgram folder and rename the program file MyFirstProgram.b4i to SecondProgram.b4i and MyFirstProgram.b4i.meta to SecondProgram.b4i.meta."
--------------

B4XGettingStartedV2_5.pdf, page 167
"Change
the following properties:"
=>
"Change the following properties:"
----------------

B4XGettingStartedV2_5.pdf, page 167
"And the result." => "And the result is this."
-------------

B4XGettingStartedV2_5.pdf, page 170
"lblSigneMath.HorizontalCenter = 50%x
HorizontalCenter centers a view horizontally on the screen at the given value, 50%x in our case,
which means in the middle of the screen.
lblNombre1.Right = lblSigneMath.Left
Aligns the right edge of lblNombre1 on the left edge of lblSigneMath, positons lblNombre1 just
besides lblSigneMath on the left.
lblNombre2.Left = lblSigneMath.Right
Aligns the left edge of lblNombre2 on the right edge of lblSigneMath, positons lblNombre2 just
besides lblSigneMath on the right."
=>
"lblMathSign.HorizontalCenter = 50%x
HorizontalCenter centers a view horizontally on the screen at the given value, 50%x in our case,
which means in the middle of the screen.
lblNumber1.Right = lblMathSign.Left
Aligns the right edge of lblNumber1 on the left edge of lblMathSign, positons lblNumber1 just
besides lblMathSign on the left.
lblNumber2.Left = lblMathSign.Right
Aligns the left edge of lblNumber2 on the right edge of lblMathSign, positons lblNumber2 just
besides lblMathSign on the right."
------------

B4XGettingStartedV2_5.pdf, page 171
"If you had connect the device since the beginning you
could have followed all the evolutions of the layout on
the device."
=>
"If you had connected the device since the beginning you
could have followed all the evolutions of the layout on
the device."
-----------------

B4XGettingStartedV2_5.pdf, pages 80, 127 and 176
"This chapter is becoming obsolete it is only useful if you want to develop only with"
=>
"This chapter is becoming obsolete, it is only useful if you want to develop only with"
--------------

B4XGettingStartedV2_5.pdf, page 181
"B4XPages B4X cross-platform project.
These are explained in detail in the B4XPages Cross-platform Booklet.
• B4XTurtle B4X Turtle project, a specific library.
These are explained in the forum
B4XTurtle - Library for teachers and parents."
=>
"B4XPages B4X cross-platform projects.
These are explained in detail in the B4XPages Cross-platform Booklet.
• B4XTurtle B4X Turtle project, a specific library.
This is explained in the forum
B4XTurtle - Library for teachers and parents."
-------------------

B4XGettingStartedV2_5.pdf, page 184
"The default name is
b4a.example"
=>
"The default name is
b4j.example"
-------------------

B4XGettingStartedV2_5.pdf, page 190
"The new properties Left, Top, Width and Height are directly updated in the Properties window."
=>
"The new properties Left, Top, Width and Height are automatically updated in the Properties window."
--------------

B4XGettingStartedV2_5.pdf, page 197
"And the result." => "And the result is this."
-------------

B4XGettingStartedV2_5.pdf, page 198
"To write the routines for the project, we need to reference the Views in the code."
=>
"To write the routines for the project, we need to reference the nodes in the code."
--------------

B4XGettingStartedV2_5.pdf, page 207
"And the result." => "And the result is this."
-------------

B4XGettingStartedV2_5.pdf, page 209
"We will move btnAction from Main to the
pnlKeyboard Panel."
=>
"We will move btnAction from Main to the
pnlKeyboard Pane."
---------------

B4XGettingStartedV2_5.pdf, pages 68, 123, 172 and 215
"We need to know what button raised the event." => "We need to know which button raised the event."
--------------

B4XGettingStartedV2_5.pdf, page 218
"And the result.
The CSSUtils library is added to the project."
=>
"As a result, the CSSUtils library is added to the project."
 
Top