German App Scrollen lassen

audacity363

New Member
Guten Abend,

Ich bin gerade dabei eine kleine App zu schreiben die, die GPIO Pins am RaspberryPi steuern soll. Pro Pin ein Button und eine Anzeige mit ON oder OFF. An sich habe ich das auch so hinbekommen nur die Sockets und die Buttons machen mir noch Sorgen. Da ich das ganze schon auf dem PC mit Java realisiert habe weiß ich sehr genau was ich machen möchte.
Nun zu meinem Problem:
Da man 17 Pins ansteuern kann gibt es 17 Buttons. Diese passen aber natürlich nicht alle auf den Bildschirm und ab dem 10ten überlappen sie sich. Habe dazu mal ein Screenshot hochgeladen.
Habe dann ein wenig Gegoogelt da ich in dem Thema Android Programmierung ein Neuling bin und habe die Funktion ScrollView gefunden. Nur dazu habe ich jetzt mehrer Anwendungsmöglichkeiten gefunden:

1.)
Das ganze in die main.xml zu Packen:
B4X:
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    >
    <TableLayout
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:stretchColumns="1"
        >
        <!-- Der ganze Rest -->
    </TableLayout>
</ScrollView>

Bei dieser Möglichkeit kann ich die App nicht mehr Starten es kommt sofort die Meldung: "Steuerung wurde angehalten" (Die App heißt Steuerung).

2.) Das ganze irgendwie mit:
B4X:
ScrollView.Panel.AddView(...)
zu implementieren aber da steh ich vor einem ganz großen Rätzel wie ich da meine main einbinden soll. Habe jegliche Kombinationen Versucht aber Eclipse schlägt mir nicht die Sachen vor die ich brauche.
 

Attachments

  • Screenshot_2013-07-15-22-34-10.png
    Screenshot_2013-07-15-22-34-10.png
    56.2 KB · Views: 236
Last edited:

klaus

Expert
Licensed User
Longtime User
Das kannst Du Alles intern in B4A machen ohne xml weder noch Eclipse.
Anstatt Buttons könntest Du Togglebuttons verwenden.
Das Ganze könnte wie im beigelegten Beispiel aussehen.
B4X:
Sub Process_Globals
    Dim Pins As List
End Sub

Sub Globals
    Dim scvSteuerung As ScrollView
End Sub

Sub Activity_Create(FirstTime As Boolean)
    'Initialisiert die Pinwerte
    If File.Exists(File.DirInternal, "Pins.txt") = False Then
        InitPins
    End If
    Activity.LoadLayout("main")
End Sub

Sub Activity_Resume
    'Liest die gespeicherten Pinwerte in die List
    Pins = File.ReadList(File.DirInternal, "Pins.txt")
    FillScollView
End Sub

Sub Activity_Pause (UserClosed As Boolean)
    'Speichert die Pinwerte in eine Datei
    File.WriteList(File.DirInternal, "Pins.txt", Pins)
End Sub

Sub InitPins
    'Initilisiert die Pinwerte
    Dim i As Int
    
    Pins.Initialize
    
    For i = 0 To 16
        Pins.Add(False)
    Next

    'Speichert die Pinwerte in eine Datei
    File.WriteList(File.DirInternal, "Pins.txt", Pins)
End Sub

Sub FillScollView
    Dim i As Int
    
    Dim width = 100dip As Int
    Dim height = 60dip As Int
    Dim height1 = height + 5dip As Int
    
    For i = 0 To 16
        Dim tbt As ToggleButton
        tbt.Initialize("tbtPin")
        tbt.Tag = i
        tbt.TextOn = "Pin " & i & CRLF & "ON"
        tbt.TextOff = "Pin " & i & CRLF & "OFF"
        scvSteuerung.Panel.AddView(tbt, 10dip, 10dip + i * height1, width, height)
        tbt.Checked = Pins.Get(i)
    Next
    scvSteuerung.Panel.Height = 10dip + i * height1
End Sub

Sub tbtPin_CheckedChange(Checked As Boolean)
    Dim tbt As ToggleButton
    Dim i As Int
    
    tbt = Sender
    i = tbt.Tag
    Pins.Set(i, Checked)
End Sub
Die Pinwerte werden gespeichert und beim drehen des Gerätes oder beim nächsten Start beibehalten.

Beste Grüsse.
 

Attachments

  • RaspberryPi.zip
    7.3 KB · Views: 244
  • RaspberryPi.png
    RaspberryPi.png
    22.1 KB · Views: 278

audacity363

New Member
Guten Morgen

Erstmal danke das Du mir das Projekt so ausgearbeitetst hast aber ich Blick da nirgendwo durch (siehe unten). Vor allem habe ich Keine Ahnung wie man z.B. JavaCode und weitere Menues hinzufügt.

Also wie gesagt: Ich bin totaler Neuling und habe mir dazu das Buch "Android 4 Apps entwickeln mit dem Android SDK" von Galileo Computing geholt. Dieses Buch ist halt auf Eclipse ausgelegt und auch durch Phyton und Java Projekte bin ich an Eclipse gewöhnt. Basics4Android kenne ich erst seit deinem Post. Habe mich gerade ein wenig eingelesen(Dein UserGuide,Google) und ich komme damit gar nicht kla sry.
 
Last edited:

klaus

Expert
Licensed User
Longtime User
Dieses Forum ist exklusif für Basic4Android Benutzer und Ich dachte dass Du die Demoversion hättest.
Die Basic4Android Sprache ist ein BASIC Dialekt also kein Java.
Mit Basic4Android kann man viel leichter und schneller Programme erstellen als mit Java in Eclipse.
Um Dich mit Basic4Android gewohnt zu machen solltest Du dir zuerst die Demoversion runterladen und den Beginner's Guide lesen, da findert Du auch erklährte Beispielprogramme mit Sourcecode. Der User's Guide ist für mehr fortgeschrittene Benutzer gedacht.
Das Buch das Du dir zugestellt hast nützt Dir wahrscheinlich nicht viel zum Anfangen mit Basic4Android.
Java Code kann man in Basic4Android nicht einbinden.

Beste Güsse.
 

audacity363

New Member
OKey das wusste ich nicht. Mal sehen sollte eigentlich meine einzige App bleiben deswegen. Aber danke für die schnelle Hilfe.
 
Top