View auf Existenz überprüfen

D

dannywilde

Neues Mitglied
0
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.
 
if (view != null)

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

oder redest du von activities?
 
  • Danke
Reaktionen: dannywilde
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.
 
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.
 
ä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
 
  • Danke
Reaktionen: dannywilde
Funktioniert jetzt wie gewünscht. Danke für die Hilfe.:thumbsup:
 

Ähnliche Themen

M
  • MikelKatzengreis
Antworten
5
Aufrufe
167
swa00
swa00
B
Antworten
4
Aufrufe
520
bb321
B
Zurück
Oben Unten