1. Gewinne jetzt ein UMiDIGI C Note - alle Informationen findest du hier!!
  1. Gecko0815, 09.09.2010 #1
    Gecko0815

    Gecko0815 Threadstarter Neuer Benutzer

    Hallo!

    Ich habe eine ListActivity wie die aus dem Listen-Beispiel 14 der API-Demos nachgebaut (List14.java | Android Developers), mit der Änderung, dass nicht ein Bild und eine TextView, sondern drei Buttons angezeigt werden, die anschließend den Inhalt einer MySQL-Tabelle, die mittels PHP-Scripts geladen wird, anzeigen sollen.

    Jetzt möchte ich, dass man ein Element auswählen kann, um den entsprechenden Wert zu ändern, was allerdings am OnClickListener scheitert.

    Code:
                holder.nameButton.setText(tableValues[position][1]);
                holder.nameButton.setOnClickListener(new OnClickListener() {
    
                    @Override
                    public void onClick(View v) {
                        
                        Log.i(TAG,"nameButton pressed!\n"+v.toString());
                    }
                    
                });
    Dieser Ausschnitt aus der getView in der Klasse MyAdapter ist mein Problem: Die Ausgabe im Log funktioniert, allerdings ist das auch so ziemlich alles,was ich machen kann - denn ich kann weder Toast-Nachrichten schicken ("No enclosing instance of the type MyTable is accessible in scope") - Anm.: MyTable heißt die ListActivity - noch kann ich eine Prozedur/Funktion aufrufen, die das macht (die soll "static" sein, was allerdings dann diese funktionsunfähig macht), ich kann keine Variablen verwenden (diese müssen final sein, damit er sie innerhalb des onClick verwenden kann), etc.

    Hat jemand eine Idee, wie man dieses Problem am Effektivsten lösen kann? Ich wäre auch für Alternativvorschläge zwecks Darstellung von Tabellen in Android dankbar!

    Vielen, vielen Dank im Voraus :)
     
  2. Gecko0815, 14.09.2010 #2
    Gecko0815

    Gecko0815 Threadstarter Neuer Benutzer

    Hat keiner eine Idee? :crying:
     
  3. BenOtto, 14.09.2010 #3
    BenOtto

    BenOtto Android-Hilfe.de Mitglied

    Das alles machst du innerhalb der MyTable Klasse? Dann kannst du mit MyTable.this.* auf Methoden und Variablen zugreifen.
     
  4. Gecko0815, 14.09.2010 #4
    Gecko0815

    Gecko0815 Threadstarter Neuer Benutzer

    Mittels MyTable.this.* kann ich nicht auf die Variablen/Prozeduren zugreifen. Die Struktur sieht folgendermaßen aus:

    Code:
    public class MyTable extends ListActivity {
         .....
    
         private static class MyAdapter extends BaseAdapter {
              .....
              public View getView(int position, View convertView, ViewGroup parents) {
                   ViewHolder holder;
    
                   .....
    
                   holder.nameButton.setText(tableValues[position][1]);
                   holder.nameButton.setOnClickListener(new OnClickListener() {
                        @Override
                        public void onClick(View v) {
    
                             Log.i(TAG,"nameButton pressed!\n"+v.toString());
                        }
                   });
              }
    
              static class ViewHolder {
                   Button nameButton;
              }
         }
    
         .... (restliche Prozeduren/Funktionen)
    
    Innerhalb von dieser onClick-Prozedur versuche ich, Toast-Nachrichten zu schicken bzw. auf Variablen zuzugreifen, nur klappt das aufgrund der im ersten Post beschriebenen Fehlern nicht. Die Struktur, nach der ich die ListActivity aufgebaut habe, hab ich von den API-Demos vom Android-SDK übernommen und eben an meine Vorstellungen angepasst - allerdings wird in den Demos kein onClickListener behandelt.

    Sinn der Sache ist der, dass eine MySQL-Tabelle heruntergeladen wird (mittels PHP-Scripts) und die Werte in Buttons (um sie anzuklicken und daraufhin ändern zu können) anzuzeigen. Wie gesagt, wenn es andere Lösungen gibt, die das schöner/eleganter lösen (wovon ich stark ausgehe ;) ) wäre ich natürlich auch für solche Vorschläge dankbar :)
     
  5. BenOtto, 14.09.2010 #5
    BenOtto

    BenOtto Android-Hilfe.de Mitglied

    Mach mal das static bei deinem Adapter weg.
     
  6. Gecko0815, 14.09.2010 #6
    Gecko0815

    Gecko0815 Threadstarter Neuer Benutzer

    Hey, das klappt :)
    Er beschwert sich zwar immer noch, wenn ich Variablen aufrufen will, dass sie nicht final sind, aber ich kann zumindest außerhalb liegende Prozeduren aufrufen - die Variablen, die ich benötige, kann ich vor dem Hinzufügen des onClickListeners als zusätzliche, temporäre Variablen (die dafür final sind), verwenden.

    Vielen Dank! :thumbsup:
     
Die Seite wird geladen...
Ähnliche Themen Forum Datum
[OFFEN] Probleme mit Action Floating Button Android App Entwicklung 27.05.2017
[ERLEDIGT] Buttontext per klick ändern Android App Entwicklung 14.03.2017
SnackBar Action Button wird nicht an den unteren Rand gesetzt Android App Entwicklung 07.03.2017
Der Zurück-Button wird nicht angezeigt Android App Entwicklung 23.01.2017
Mail von Button aus mit Standard-Mail-App senden Android App Entwicklung 21.01.2017
Button Titel bei Klick ändern Android App Entwicklung 17.01.2017
Button positioniert sich immer über Tastatur Android App Entwicklung 13.01.2017
App stürzt beim Button Klick ab Android App Entwicklung 12.01.2017
Buttonfarbe ständig wechseln Android App Entwicklung 06.01.2017
Viewelemente neu zeichnen Android App Entwicklung 04.01.2017
Du betrachtest das Thema "OnClickListener für Buttons in einer ListActivity" im Forum "Android App Entwicklung",