Edit Content View?

  • Hey,
    ist es möglich das momentane Layout zu entfernen und ein neues zu laden? Denn ich würde ganz gerne machen, dass, wen man einen bestimmten Button drückt, sich ein "PopUp" öffnet, das sich über den ganzen Bildschirm erstreckt. Dafür wollte ich nun mit setContentView ein neues Layout laden, damit die Variablen nicht verloren gehen. Leider kommt dann ein Fehler und die App schließt sich. Das Einzige, das ich herausgefunden hab, ist, dass der Fehler bei dem setContentView ausgelöst wird. Darf man überhaupt ein Layout über ein anderes Laden?
    Wo könnte der Fehler liegen?
    Wie könnte man das (falls das sehr dumm gelöst ist) besser machen?


    MfG
    Timer

  • Da leider bei getContext() kam: "Cannot resolve method 'getContext()'"
    Und bei inflate(r....: "Cannot resolve method 'inflate(int, de. ... . ... .GamePlay)'"
    Deswegen habe ich im Internet geschaut und wie folgt abgeändert:


    Code
    LayoutInflater inflater = LayoutInflater.from(this);
            inflater.inflate(R.layout.activity_finances, null);

    Leider passiert nun gar nichts mehr, sobald ich den Button drücke

  • nein wo ist die variable des Button und wo setzt du den onklicklistner. Vor allen erst nach dem du das layout geladen hast. Nach dem laden sind alle alten Button vor dem inflate weg.


    Wie machst du das mit der onClick Methode? Benutzt du das onCkick in XML, und für jeden Button eine Methode . Das wird mit mehren Layouts nicht gehen.


  • Ah verdammt. Hab es überall mit onClick über XML gemacht und das wäre sehr viel Aufwand, das zu ändern. Gibt es noch eine andere Möglichkeit ein Fullscreen PopUp zu machen (bzw eine Methode wie man ein neues Layout lädt und die Variablen im Java beibehält (darum neue Activity laden ist keine Lösung)) mit mehreren Buttons ohne sehr viel Aufwand aufwenden zu müssen (am besten keine über Java erstellten Buttons (da das meiner Meinung nach schwerer zu machen ist))

  • Verstehe den ganzen Aufwand nicht. Wieso erstellst du die Variablen die du in allen activitys brauchst nicht in eine Klasse macht sie static und erstellst die Variablen auch static in der Klasse. Somit kannst du von allen activitys ohne Instanz darauf zugreifen. Natürlich must du den Klassen nahmen mit angeben. Wenn du den kurz wählt ist das auch nicht so viel tipparbeit

  • Warum eigentlich ein neues Layout mache doch deine View Elemente sichtbar und unsichtbar im Layout so wie du es brauchst.


    (am besten keine über Java erstellten Buttons (da das meiner Meinung nach schwerer zu machen ist))


    Wass soll das, dann hast du es noch nicht verststanden. Buttons müssen immer in Java bekannt gemacht werden auch wenn du die onClick eigenschaft in XML nutzt. Dies muss aber in der onCreate gemacht werden, da dort auch das Layout geladen wird, werden auch die onClicklistner gesetzt, die Button machtst du java dort auch bekannt.
    Du Lädst arber ein neues Layout auserhalb der onCreate und musst somit selber den OnCklickListner setzen.
    Du kanst die default Klickmethode "onClick(View v)" benutzen, durch angabe von this in
    ".setOnClickListener(this);"
    oder eine eigene Methode schreiben die du bei this eintragen musst.
    Ist eigentlich nicht schwer und auch nicht so viel Tipparbeit.


    Ps. so jetzt sollte das Thema aber auch durch sein.

  • Ok danke. Das man die View Elemente über Java nachträglich noch sichtbar und unsichtbar machen kann, war mir zuvor nicht klar.
    Mit den Buttons in Java erstellt meine ich nicht, dass dort ein onClickListener gesetzt wird. Man kann irgendwie ein Button in Java selbst erstellen (mit Position, Size usw in Java angeben). Das meine ich

  • dein workflow ist einfach problematisch. In Android wird nicht einfach das layout geändert. Es gibt zwei wege deinen wunsch zu erfüllen.


    1. Ein dialog mit custom layout der nicht full screen ist.
    2. eine neue activity die bei button klick geladen wird.

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!