Android Tutorial B4A Beginners Guide

This guide is obsolete ! It is no more updated.
Please use the B4X Booklets.


Here is a Beginner's Guide in pdf format.
The source code for the example programs is included.

All suggestions, remarks and typo reports are welcome.

To know what vesion you have, look at the lower right corner of the cover page there is an Edit number.
Latest version Edit 3.3

Best regards.


EDIT 2016.10.26 Edition 3.3
Updated with the new B4A V6.30 features.
A big thank you to widget who sent me a complete review with suggestions and typos.
Almost all suggestions have been added.

EDIT 2015.12.08 Edition 3.2
Updated with the new B4A V5.50 features.

EDIT 2015.10.14 Edition 3.1
Updated with the new B4A V5.20 features.

EDIT 2015.07.26 Edition 3.0
Updated with the new B4A V5.02 features.

EDIT 2014.06.04 Edition 2.9
Updated with the new B4A V3.80 features.
Amended some typos.

EDIT 2014.05.07 Edition 2.8
Updated with the new B4A V3.50 features.
Amended some typos.

EDIT 2014.02.05 Edition 2.7
Updated with the new B4A V3.20 features.

EDIT 2013.10.13 Edition 2.6
Updated with the new B4A V3.00 features.

EDIT 2013.05.19 Edition 2.5
Updated with more recent Android SDKs.
Updated to Basic4Android Version 2.70
Added some code snippets to B4A Code Snippets.

EDIT 2013.01.20 Edition 2.4
Minor update with the changes of B4A Version 2.5

EDIT 2012.12.27 Edition 2.3
Updated to Basic4Android 2.3
Updated some chapters

EDIT 2012.08.30 Edition 2.2
- Updated to B4A 2.02
- Removed chapters Keywords, Views and Collections moved them in a separate guide Keyword_Views.pdf
- Added Chapter 12. Tools
- Chapter 12 Example Programs becomes 13
- Chapter 13 Basic Language becomes 14
- Chapter 14 Basic Graphics / Drawing becomes 15
- Chapter 15 Keywords removed
- Chapter 16 Views removed
- Chapter 17 Collections rmoved
- Chapter 18 VB6 versus B4A becomes 16
- Chapter 19 FAQ's becomes 17
- Chapter 20 Glossary becomes 18
- Added new chapters to FAQ'schapter
- Chapter 17.39 not yet finished

Two new Guides have been added:
- Keyword / Views / Collections these chapters were in the Beginner's Guide before
- B4A Code Snippets, it's a collection of code snippets I took from the forum.

EDIT 2012.04.11 Edition 2.1
- Added chapter 5.3 Screen Orientations
- Added chapter 6.4 Exchanging files with PC
- Added chapter 8.9 Designer Script
- Added chapter 13.5.3 Calling a Sub from another module
- Added chapter 13.11 Lists
- Added chapter 13.12 Maps
- Added chapter 17 Collections
- Chapter 17 becomes 18
- Chapter 18 becomes 19
- Added chapter 19.25 Detect screen orientation
- Added chapter 19.26 Some functions don't work in Activity_Pause
- Added chapter 19.27 Calling internal Calculator
- Added chapter 19.28 Get the Alph / Red / Green / Blue values

EDIT 2012.03.11 Edition 2.0
- Amended some errors
- Updated to B4A version 1.8
New chapter
- Working with different screen sizes / number of layouts

Removed chapters
- SQL moved to the User's Guide
- GPS moved to the User's Guide

EDIT 2012.01.01 Edition 1.6
- Added the Widget tutorials.
- Amended some errors.

EDIT 2011.12.25 Edition 1.5
- Added the GPS Example program with some explanations of the code.
- Added some subchapters inspired by forum questions.

Edit: 2011.11.01 Version 1.4
New chapters:
- 8.7 The Abstract Designer
- 8.8 Adding views by code
- 12.5 GPS (a new GPS program will be added in the next update)
- 13.7 Basic Language / Events
- 13.10 Basic Language / Files
- 18.xx some new FAQ's

Edit: 2011.08.29 Version 1.3
New chapter:
- 18 FAQ's

Edit: 2011.08.15 Version 1.2
Above chapters have been added.

Edit: 2011.06.12 Version 1.1
Still missing chapters:
Modules
Example Programs
- ScrollView example
- Database example
Basic Language
- String manipulations
- Timers
Graphics
 
Last edited:

klaus

Expert
Licensed User
Longtime User
A new update of the Beginner's Guide is available, version 1.4.

Typos and improvements amended.
Thank's go to the users having repoted typos or errors.

New chapters:
- 8.7 The Abstract Designer
- 8.8 Adding views by code
- 12.5 GPS (a new GPS program will be added in the next update)
- 13.7 Basic Language / Events
- 13.10 Basic Language / Files
- 18.xx some new FAQ's

Best regards.

 

bluejay

Active Member
Licensed User
Longtime User
Excellent - much appreciated - even mentions the tool menu 'Run AVD Manager' issue that occurs in some installations.:sign0098:

bluejay
 

DavidN

Member
Licensed User
This is very helpful! The PDF bookmarks are cleaner in this release; thank you. Would you consider a few changes in the next edition?
- Add bookmarks to the table of contents and the front page. Sometimes its just helpful to quickly see the actual TOC of a document, instead of the bookmarks.
- Include the the revision number in the file name. This is helpful when sorting through multiple editions of a document. I usually add it as a suffix to the end of the file name.
(I'm a technical writer and these are some ideas I've found helpful.)
If you want any help writing or editing this document, let me know.
 

netchicken

Active Member
Licensed User
Longtime User
Darn, I just skimmed the new manual and realized then when I started learning B4A the first thing I should have done is RTFM first. it would have saved me heaps of time working stuff out.

A great resource!!!
 

Hubert Brandel

Active Member
Licensed User
Longtime User
Thanks a lot, thats what I am waiting for... :sign0060:

Bye the way EREL, what a very nice new homepage and forum style :)
 

Hubert Brandel

Active Member
Licensed User
Longtime User
Hi,

I think I found an error on page 144 on Version 1.4.

Your text says:
B4X:
Updating data:
UPDATE TableName Set (Col1 = 'Val1', Col2 = Val2) WHERE ID = idVal
SQL1.ExecuteNonQuery("UPDATE TableName Set (Col1 = 'Val1', Col2 = Val2)" WHERE ID = idVal")

but ... " WHERE ID ... seems to be from a other command syntax and
Set (Col1=....,....) gives an SQLlite Syntaxerror by (.

This line will work here:

B4X:
SQL.ExecNonQuery("UPDATE LG Set AbleseDatLG = '', SortAbDatLG = '' WHERE LgNr = " & WinListLG.nActiveLG)

to avoid irritation:

AbleseDatLG = '' and SortAbDatLG = '' => ' ' just an empty string.
"UPDATE LG Set ...' WHERE LgNr = " & WinListLG.nActiveLG ) => "
 

klaus

Expert
Licensed User
Longtime User
Thank you Hubert,

You are right:
B4X:
UPDATE TableName Set (Col1 = 'Val1', Col2 = Val2) WHERE ID = idVal 
SQL1.ExecuteNonQuery("UPDATE TableName Set (Col1 = 'Val1', Col2 = Val2)[COLOR=Red]"[/COLOR] WHERE ID = idVal")
It should be (one " too much):
B4X:
UPDATE TableName Set (Col1 = 'Val1', Col2 = Val2) WHERE ID = idVal 
SQL1.ExecuteNonQuery("UPDATE TableName Set (Col1 = 'Val1', Col2 = Val2) WHERE ID = idVal")
Will be amended in the next update.

Best regards.
 

Hubert Brandel

Active Member
Licensed User
Longtime User
But I got an error because of the ( ) too.
I think the are only for the ExecuteNoneQuery2() ... with the parameters.
 

clx

Member
Licensed User
Longtime User
Thanks again for this Klaus.

Really helpful and useful info in this guide!!
 

quickstraw

New Member
Problem with the first 2 programs

First off, thanks for the Guide. I'm new to programming and am stumbling through, but the guide is starting me off on the right foot.

My question is, on both the FirstProgram and the SecondProgram, when you hit ok for the first time, no results show up. But after that, results of good, wrong or error all work perfectly. Is this how it is suppose to work or is there an error? I can't figure out why it isn't working correctly. I did check my code and it matches the original source code perfectly. Just curious. Thanks!
 

klaus

Expert
Licensed User
Longtime User
My question is, on both the FirstProgram and the SecondProgram, when you hit ok for the first time, no results show up.
That's how the program does work.
Normally you enter a result and then click the OK button.
The program checks if there is a result entered, if no you get the message, and you get this not only the first time. Afterwards, if you click on NEW and just after you click on OK you get also the message.
If you would avoid this behaviour, you could hide the OK button as long as the result EditText view is empty.

Best regards.
 
Top