1. Nimm jetzt an unserem Uhans - 3. ADVENT - Gewinnspiel teil - Alle Informationen findest Du hier!

View auf Existenz überprüfen

Dieses Thema im Forum "Android App Entwicklung" wurde erstellt von dannywilde, 10.05.2011.

  1. dannywilde, 10.05.2011 #1
    dannywilde

    dannywilde Threadstarter Neuer Benutzer

    Beiträge:
    19
    Erhaltene Danke:
    0
    Registriert seit:
    10.03.2011
    Hallo Community,

    In meiner App werden zur Laufzeit Views erstellt und wieder gelöscht.
    Um Fehler zu vermeiden muss ich dafür überprüfen, ob ein View existiert oder nicht. Wie mache ich das?
    Ich brauche sowas wie:

    ViewXXX.isExistent();

    Nur gibt es das leider nicht.

    Danke für die Hilfe.
     
  2. swordi, 10.05.2011 #2
    swordi

    swordi Gewerbliches Mitglied

    Beiträge:
    3,389
    Erhaltene Danke:
    441
    Registriert seit:
    09.05.2009
    if (view != null)

    wenn views erstellt werden, solltest du das selbst wissen und auch wann sie gelöscht werden.

    oder redest du von activities?
     
    dannywilde bedankt sich.
  3. dannywilde, 11.05.2011 #3
    dannywilde

    dannywilde Threadstarter Neuer Benutzer

    Beiträge:
    19
    Erhaltene Danke:
    0
    Registriert seit:
    10.03.2011
    Erstmal Danke für die Antwort swordi, klappt.

    Allerdings habe ich im selben Zusammenhang ein weiteres Problem.

    Abhängig von der Usereingabe werden in meiner App Buttons erstellt und wieder gelöscht. Damit ich die erstellten Buttons später wieder löschen kann, weise ich ihnen beim erstellen eine ID zu.

    Code:
    Button btn= new Button(this);
    btn.setId(1000);
    Später nutze ich diese ID um die Buttons wieder zu löschen. Da die Existenz von der Usereingabe abhängig ist, wird sie überprüft, was nun auch funktioniert.

    Code:
    Button btn= (Button) findViewById(i);
                    if (btn!= null){
                        btn.setVisibility(8); 
                    }
    Problem: Das ganze funktioniert, aber nur EINMAL. Beim ersten Erstellen und Löschen klappt alles bestens, wird der Button aber erneut erstellt, funktioniert das löschen nicht mehr.

    Habe die Vermutung, dass dies irgendwie mit der doppelten Vergabe der ID zu tun hat? Aber weiß momentan nicht, wie ich es lösen soll.

    Oder aber setVisibility ist ein ungeeigneter Löschbefehl. Allerdings habe ich alle Funktionen durchsucht und keinen besseren gefunden. Bin ich blind, oder gibt es keinen anderen?


    Vielen Dank für eure Hilfe.
     
  4. ApeDick, 11.05.2011 #4
    ApeDick

    ApeDick Android-Hilfe.de Mitglied

    Beiträge:
    114
    Erhaltene Danke:
    8
    Registriert seit:
    21.03.2011
    setVisibility(false) entfernt ja nicht das Objekt sondern setzt nur eine Eigenschaft. Wenn du jetzt nochmal einen Button mit der gleichen ID erzeugen willst, geht das natürlich nicht.
     
  5. swordi, 11.05.2011 #5
    swordi

    swordi Gewerbliches Mitglied

    Beiträge:
    3,389
    Erhaltene Danke:
    441
    Registriert seit:
    09.05.2009
    ähm englisch kannst du oder?

    setVisibility() wird wohl soviel heißen wie "setze die sichtbarkeit"

    wenn du ihn auf unsichtbar setzt, hast du ihn ja nichg gelöscht. er ist ja nur nicht sichtbar.

    wenn du einen button erstellst, dann musst du ihn ja einem layout zuordnen.

    mylinearlayout.addChild(myButton);

    dann kannst du mit removeChild(myButton); ihn wieder wegnehmen.

    oder aber du setzt die sichtbarkeit

    myButton.setVisibility(View.Invisble)
    myButton.setVisibilty(View.Visible)

    ganz einfach oder?

    ein guter tipp: developer.android.com
     
    dannywilde bedankt sich.
  6. dannywilde, 15.05.2011 #6
    dannywilde

    dannywilde Threadstarter Neuer Benutzer

    Beiträge:
    19
    Erhaltene Danke:
    0
    Registriert seit:
    10.03.2011
    Funktioniert jetzt wie gewünscht. Danke für die Hilfe.:thumbsup:
     

Diese Seite empfehlen