Beiträge von assenda

    Und hier die lösung:


    http://i.thiyagaraaj.com/artic…popupusinglayoutinandroid



    main.xml:

    Code
    <?xml version="1.0" encoding="utf-8"?>
    
    
    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    	android:id="@+id/RelativeLayout01" android:layout_width="fill_parent"
    	android:layout_height="fill_parent">
    	<Button android:layout_height="wrap_content"
    		android:layout_width="wrap_content" android:id="@+id/ClkBtn"
    		android:text="Click Me. and Get Dialog"></Button>
    </RelativeLayout>


    mydialog.xml:

    Hallo!
    habe eigentlich schon eine Thread wegen dem selben Problem erstellt, aber vermutlich ist die Problematik nicht gut rübergekommen...


    Ich brauche hinweise, wie ich ein ganz normales Popup Fenster in einer Android erzeugen kann!


    (also wo etwas wie ein kontextmenu, nur dass eine View angezeigt wird)


    Optional:
    es soll durch onCreate geöffnet werden, nicht durch einen Buttonklick...


    danke ;)

    Hallo und einen schönen Nachmittag!


    Ich bin grade bei einer App, bei der ich sofort beim Starten die möglichkeit geben will, eine Auswahl zwischen paar optionen zu treffen...
    Dies wollte ich mithilfe eines Contextmenues realisieren...


    Dabei bin ich jedoch auf folgendes Problem gestoßen:
    ich schaffes es nicht, aus der onCreate Methode die Methode onCreateContextMenu aufzurufen...


    Mithilfe eines Buttons ist es kein Problem:
    (onCreate)

    Code
    Button btn = (Button) findViewById(R.id.button);
    registerForContextMenu(btn);


    Code
    public void onCreateContextMenu(ContextMenu menu, View v, ContextMenuInfo menuInfo) {
    super.onCreateContextMenu(menu, v, menuInfo);
    menu.setHeaderTitle("Context Menu");
    menu.add(0, v.getId(), 0, "Action 1");
    menu.add(0, v.getId(), 0, "Action 2");
    }



    Jetzt liegt bei mir die vermutung nache, dass ich die registerForCon.. auf die aktuelle View anwenden muss...
    nur habe ich das einfach nicht umsetzten können...


    Kann jemand evtl. paar tipps geben,
    in welche richtung ich gehen muss?!


    (ich hab übrigens auch shcon versucht, einfach die onCreateC..Methode aus der onCreate aufzurufen..
    Das Problem hierbei ist, dass ich ja Verschiedene Parameter wie Menu, View... übergeben muss..allerdings weiß ich auch nicht, wie ich das machen kann...)


    Danke für eure Hilfe!

    Oh man tut mir echt leid^^ Hab den Fehler gefunden...


    Da sucht man Stunden nach dem Fehler und nachdem man sich an die Community wendet findet man den Fehler^^


    Also für alle, die Ähnliche Probleme haben:
    Aus dem Thread aufgerufene Methoden müssen auch in der Thread-Klasse vorhanden sein^^


    Ich habe die Methode zum Verbinden mit der Datenbank in der HauptKlasse gahabt..
    Dadurch hat sich die schleife auf den Hauptprozess ausgewirkt und keine Actionen im Hauptprozess erlaubt..


    (Bin selber noch nicht so fit und weiß nicht ob das alles richtig ist, aber das resultiere ich aus den Ergebnissen)

    Da dürftest du vermutlich ziemlich unglaubwürde Quelle gelesen haben (Wenn ich falsch liege bitte korrigieren)


    Es das Ziel von Objektorientierung, dass man globlale (private) Variablen nutzt um sie mit (public) Methoden zu verändern...


    Der Fehler dürfte daran liegen, dass der Context vor Erstellern der (view?) noch gar nicht existiert...
    Wenn du die Variable global deklarierst, aber erst in der onCreate methode definierst ( der glob. Variable zuweist) funktioniert es.
    Anschließend hast du auch Zugriff auf die glob. Variable und damit auf den Context..



    fg assenda

    Hey!
    Bin beim Basteln meiner apk mal wieder auf ein Problem gestoßen..


    Conzept:
    Prozess
    Menü erzeugung
    thread.start()
    Ausgabe in xml


    Thread
    while(){
    Datenbankabfrage (ENDLOSSCHLEIFE!) <-- Hier tritt der Fehler auf
    Sms senden
    HandlerRückgabe an Prozess
    }


    Problem: Ausführen von HttpPost (client.execute(post) verhindert öffnen des Kontextmenüs
    (Alle anderen Funktionien sind bereits implementiert und laufen ohne Probleme -
    Wenn HttpPost (client.execute(post) ausgeklammert wird,
    kann das menü ohne Probleme geöffnet und benutzt werden )


    Die Funktion ohne Menü funktioniert aber!! Vermutlich wird durch die Endlosschleife der Hauptprozess blockiert!


    Menü:

    Code
    [...]menu.add(0, MENU_NEW_status, 0, "stop");[...]


    Thread:

    Code
    [...]while (isRunning) {
    try {
    
    
    doLogin(user, pass, UPDATE_URL);
    [...]


    doLogin(...):


    Nochmal: Es geht NUR darum, das das Menü funktioniert, wenn die Endlosschleife ausgeführt wird,
    die wiederum FUNKTIONIERT, wenn client.execute(post) ausgeklammert ist!!


    Hat jemand iwelche Vorschläge, welchen Ansatz ich falsch gewählt habe?!


    Danke an alle, die sich dafür Zeit nehmen!


    fg assenda

    :-$ Ok der fehler bei meiner Suche war, dass ich nur threads im zusammenhang mit android gesucht habe...
    habe jetzt allgemein nach java mit threads gesucht, und bin dabei auf einige interessante Einträge gestoßen...


    Für die die das gleiche Problem haben:


    Bei einem Thread mit Endlosschleife handelt es sich um einen Daemon-Thread.
    Das bedeutet, dass dieser Thread selbst bei Beendigung der Anwendung weiterhin ausgeführt wird.


    Um Ihn zusammen mit der Anwendung "knallhard" zu beenden kann die Methode System.exit(0) ausgeführt werden.


    Ich bin jetzt auf der Suche nach nützlichen Informationen, was den Daemon-Thread anbetrifft...
    wäre schön, wenn jemand mir Tipps gibt....


    fg assenda

    Hallo alle zusammen!


    Folgende situation


    Ich habe aus der Applikation einen thread erstellt, in der innerhalb einer schleife ein Server auf neue nachrichten überprüft wird,
    die anschließend per sms dem empfänger zugestellt werden...Nun stehe ich vor folgendem problem:


    Der thread läuft weiter, wenn ich die app in den hintergrund befördere...


    sobald ich die app erneut starte, läufen beide programme paralell.. (das merke ich durch das doppelte versenden der sms..)


    ich habe es schon mit stop cancel destroy versucht (wobei stop ja nicht mehr benutzt werden soll)
    Nur stürzt dann die ganze app ab..


    Ich will nicht dass ihr hier den ganzen weg zeigt, sondern einfach nur auf hilfreiche seiten verweist,
    da ich trotz umfangreicher suche noch nichts passendes gefunden hab (vermutlich einfach nicht die richtigen schlüsselwörter)


    vielen dank...