Android Question Tab & spacing

persianpowerman1

Active Member
Licensed User
Longtime User
Heres whats happening

i will be fetching data from a database and the output text is going to be on a big edittex box
i need to print stuff like this, in 3 columns... whose spacing i want to do with [tab]

Code: Copy
for i =0 to recordset-1
edittext1.text = edittext1.text & "Column1" & [tab] & "Column2" & [tab] & "Column3" & CRLF
next

example for ENTER key we use CRLF
similarly for TAB key... what may i use?

YO!han
 
Heres whats happening

i will be fetching data from a database and the output text is going to be on a big edittex box
i need to print stuff like this, in 3 columns... whose spacing i want to do with [tab]

Code: Copy
for i =0 to recordset-1
edittext1.text = edittext1.text & "Column1" & [tab] & "Column2" & [tab] & "Column3" & CRLF
next

example for ENTER key we use CRLF
similarly for TAB key... what may i use?

YO!han


For tab you can use... Tab :)

But the columns may not always be aligned. It depends on the content of each field.
You shuld use both CRLF and TAB, but use spaces (" ") added on the left or right to each field.
In VB.Net there are functions like Rset and Lset (or they was in vb6? :)).
You shoud create those functions (ehm maybe there is something like those in StringFunctions or StringUtils libraries).

I found something in StringFunctions: AddSpaces.

Code: Copy
Sub Globals
    Dim mStrFunc As StringFunctions
End Sub

Code: Copy
Sub Rset(Text As String, MaxWidth As Int) As String
    Dim Res As String

    If Text.Length >= MaxWidth Then
        ' Attention: it could truncate your Text
        Res = Text.SubString2(0, MaxWidth-1)
    Else
        Res = mStrFunc.AddSpaces(MaxWidth - Text.Length) & Text
    End If

    Return Res
End Sub

LSet would be analogous.

Code: Copy
for i =0 to recordset-1
edittext1.text = edittext1.text & RSet("Column1", 12) & TAB _
                                & Rset("Column2", 12) & TAB _
                                & Rset("Column3", 15) & CRLF
next

(Obviously, the content of the columns).

As usual, I have not done tests. Try it.
 
Last edited:
Upvote 0
If you plan to work with SQLite database tables and display lots of records in neat columnar form , your best bet is to work with the TableView class. Klaus and Erel are the chief architects. I think the latest table class is version 1.29. Click link below:
http://www.b4x.com/android/forum/threads/class-tableview-supports-tables-of-any-size.19254/page-2


This is infinitely better (you can see here that I was sleeping).

Also, instead of using functions like Rset or LSet, you can use a not visible label, with its Gravity, for the alignment
 
Upvote 0
thanx...
yeah guys... i did try it out... it seems to be much better than my concept of an EDITText with TAB and space and CRLF....
how ever is it efficient...as it gives me delayed responses???

ALSO, in SQLiteLight2 example by KLAUS... i use his brilliant WebView Table...

so do you guys recomend this Table class over the ... WebView Table in KLAUS example... what say?

YO!han
 
Upvote 0
Personally, I can not advise you, because I used a bizarre system in my app (because I did not know enough B4A).
I used the Types (I had no Classes in B4A 1.80) and the sample taken from the scrollview Beginners Guide,
so do not know well those two classes.

The ideal would be to create an editable binding DataGridView as in VB.Net (complicated but not impossible, at least similar).
It seems to me also that I have seen editable grids, here on the site (perhaps that of Klaus?)

So I suggest you ... to wait for further advice :)


P.S. Flexible Class (by Klaus) can be very useful.
I have not read that it allows editing, but saves in CVS, so maybe it does; however it is a class, so you can adapt it to your needs.
(thinking... in CVS you can't save images-BLOB)
 
Last edited:
Upvote 0
hey thanx guys ...

KLAUS... the only reason i am still not considering Table class cz it kinda executed slow... like with a pause... especially in Debug mode... as if a lag existed...
or it may be on just my emulator... ?

So ... since you've used both.. do u find any lag in the Table class? like getting stuck?... cz if not.. i'll incorporate that in the remaining part of my coding

YO!han
 
Upvote 0
KLAUS... the only reason i am still not considering Table class cz it kinda executed slow... like with a pause... especially in Debug mode... as if a lag existed
How, or with what program did you test the Table class ?
As Luca already asked, how many records did the Table have ?
 
Upvote 0
ok... good question...
im talking 30 records... and the same AVD i used for both...
ALso... the WebView table actually connected to a DB.... and the Table Class only filled rows up via a loop..

webView table never ever got stuck in Debug mode... but table class did/does

hence i thought there might be some other processing happening in the background thats slowing the table class down?!
 
Upvote 0
Dopo 4 giorni con internet fuori uso :mad: eccomi a richiedere aiutini :D
Ho bisogno di un qualcosa di simile, per una label.

Passo 2 valori e vorrei che fossero allineati ma, utilizzando la Sub Rset del buon Luca, non funziona... si spostano comunque.

Code: Copy
Rix.Text=Rix.Text & TAB & Rset(Punti,80)

Questo è il risultato :(


Prova.jpg
 
Upvote 0
:D;)
Nothing.
I've try with Rix.Gravity=Gravity.Right and with SV.SingleLineLayout.Label.Gravity=Gravity.Right (SV is a ListView Object).
The resoult it's some image Up.
... the Rix label have two label :

Rix.Text=Rix.Text & TAB & Rset(Punti.Text,80)

mmmh, with this method (listlview) with two label and Rset, I have a problem with other device(Tablet 7", 10",etc.).:oops:
 
Upvote 0
"Parole trovate" e Punti are a unique label?

If so, you could use two listviews.

Also, maybe you should use a monospaced font

(as you know, you can send me the source code - or part of it, I will publish never my app, but yours...! :D)


[two listviews is a stupid suggestion: how to scroll them synchronously??? Sorry]
 
Last edited:
Upvote 0
I have try to insert a gravity into second label:


Code: Copy
    PuntiS.Gravity=Gravity.RIGHT
    Rix.Text=Rix.Text & TAB & Rset(PuntiS.TEXT,70)
    SV.AddSingleLine(Rix.Text)

...but the result not change.

What is an monospace fonts? Currier New is monispace but exist in Windows 8?
When i change the font?
It's not possible syncronize two listview?...your idea would not be bad. ;)
 
Upvote 0
You should take a look to ListView in the documentation ;)

AddSingleLine adds... a single line in the single "layout" of the listview. You don't need this, in the TwoLines layout the label are one above the other.

Monospace fonts are font in which each letter have same width. You can use this code or you can select TextStyle - TypeFace - Monospace in the designer or:
MyListView.SingleLineLayout.Label.Typeface = Typeface.MONOSPACE
 
Upvote 0
Back
Top