Beiträge von prototype0815

    Ich weiss nicht ob das hilfreich ist aber was für eine Art von Fragment benutzt du um diese mithilfe des FragmentManagers zu tauschen?


    Ich habe die Erfahrung gemacht das ich android.app.Fragment benutzen muss wenn ich diese auf einem FrameLayout austauschen möchte und android.support.v4.app.Fragment wenn ich diese z.B. auf ein ViewPager setzen möchte.


    So sieht mein Code zum tauschen der Fragmente aus...

    und so meine passende XML...



    Ich hoffe irgendwas hilft dir... :) :)

    Hey folks, ich mach ja nun schon seit geraumer Zeit mit meinen ganzen Popup´s rum aber zu diesem Thema finde ich wirklich nichts brauchbares.


    Hier meine Popup Ansicht:
    [Blockierte Grafik: http://preview.slick.pics/FUk449nHB.png]


    wie man sieht ist die View des Popup´s einfach nur über meine HauptView gelegt, ist es denn mit PopupView oder PopupWindow überhaupt möglich den Hintergrund mit einem "Shadow" zu verdunkeln solange das Popup angezeigt wird?


    Vielleicht kennt ihr das vom Navigation Drawer, wenn ich diesen von der Seite herein ziehe dann wird meine View im Hintergrund verdunkelt.
    Hier sieht man ganz gut das der Erdball im Hintergrund auf dem rechten Bildausschnitt viel dunkler ist.
    [Blockierte Grafik: http://preview.slick.pics/FU2Glh1xG.png]


    Beim NavigationDrawer gibt es dafür extra eine Methode -> setDrawerShadow()


    Leider finde ich nichts derartiges für ein Popup, aber vielleicht wisst ihr das etwas :thumbup:

    Solution:


    Externer Inhalt www.youtube.com
    Inhalte von externen Seiten werden ohne Ihre Zustimmung nicht automatisch geladen und angezeigt.
    Durch die Aktivierung der externen Inhalte erklären Sie sich damit einverstanden, dass personenbezogene Daten an Drittplattformen übermittelt werden. Mehr Informationen dazu haben wir in unserer Datenschutzerklärung zur Verfügung gestellt.

    ich habe natürlich alle 3 Posts schon durch die du mir freundlicherweise kurz ergooglet hast.


    der einzige davon der eine "aktzeptierte Antwort" hat ist der erste und der funktioniert ebenfalls nicht, obwohl mein Compiler keine Fehler anzeigt.


    Java
    ecb.setChoiceMode(ListView.CHOICE_MODE_SINGLE);
          ecb.setBackground(mContext.getResources().getDrawable(R.drawable.para_listview_bg));


    para_listview_bg.xml

    Sobald, er zu dem Codesegment "ecb.setBackground" kommt stürzt die App ab.
    EDIT: ach und ich habe keine XML layout File, die Listview ist dynamisch im Code erstellt.

    Hey folks, ich habe eine ListView mit ein paar wenigen Elementen und möchte gerne mit einem OnClickListener das angeklickte Element highlghiten und selektiert lassen.


    Bisher waren aber alle meine Mühen vergeblich.
    was ich versucht habe ist...

    Java
    listview.setChoiceMode(ListView.CHOICE_MODE_SINGLE);
    listview.setSelection(position);
    Java
    listview.setItemChecked(position, true);

    beides tut weder dauerhaft highlighten noch selektieren, da ich direkt nach dem selektieren das aktuell selektierte Objekt wieder abrufe und immer NULL zurück bekomme.

    Zeile 27 + 28



    Zeile 7 + 8


    Ausgabe:

    Code
    System.out﹕ ParaEdit init Spinner:     ###########  android.view.ViewRootImpl@5312a4e0
    System.out﹕ ParaEdit init popupWindow: ###########  android.view.ViewRootImpl@5312a4e0
    System.out﹕ ParaEdit init Spinner:     ###########  android.view.ViewRootImpl@5312a4e0
    System.out﹕ ParaEdit init popupWindow: ###########  android.view.ViewRootImpl@5312a4e0
    System.out﹕ onLongClick popupView:     ###########  android.view.ViewRootImpl@5312a4e0
    System.out﹕ onLongClick popupWindow:   ###########  android.view.ViewRootImpl@5312a4e0


    :/ :/ :-/

    Zur Laufzeit zeigt es mir NULL an, darum hab ich es mal mit einem System.out.println() versucht...


    Ausgabe:

    Code
    04-15 15:12:50.913    4456-4456/com.example.paul_io I/System.out﹕ android.view.ViewRootImpl@530a90dc
    04-15 15:12:50.913    4456-4456/com.example.paul_io I/System.out﹕ android.widget.LinearLayout{530a86ac V.E..... ......I. 0,0-0,0 #7f0a0073 app:id/llMain}

    wie vergleich man so was? Mit equals oder == oder instanceOf ???


    Wenn ich den Debugger anhalte und die Eigenschaften meines Spinners anschaue steht bei mParent GridLayout, dessen mParent ist LinearLayout, und dessen mParent ist android.view.ViewRootImpl

    die MainActivity tauscht in meinem Fall über FragmentManager -> FragmentTransaction -> replace() die Fragmente aus, die aktuell angezeigt werden. Es ist also immer so das der gezeigt Context, der von meiner MainActivity ist !? Ausser ich hab da was falsch verstanden.


    Auf meinem aktuell angezeigten Fragment (ParaMain) liegt ein MapPagerAdapter, dieser zeigt wiederum Fragmente an (ParaFragment), auf diesen Fragmenten liegt ein TableLayout, jede Row bekommt einen onLongKlickListener.
    Ab hier sind wir dann wieder an der oben geschilderten Stelle, durch den LongClick wird ein popupView erstellt, para_popup.xml als Layout definiert, dessen GridLayout wird durch die Klasse ParaEdit gefüllt.


    Dieses GridLayout wird dynamisch erstellt, je nachdem welcher Art mein Parameter ist, es werden also mal nur TextViews und EditText´s angezeigt, mal TextViews mit einer Gruppe RadioButtons, und eben mal TextViews mit einem Spinner.
    In allen Fällen wird immer der selbe Context übergeben, nämlich "mContext", und es funktioniert auch alles, bis auf das aufklappen dieses doofen Spinners.

    Android Studio ist toll, da ich aber relativ viele verschiedene Projekte mit verschiedenen Sprachen habe, nutze ich die Eierlegendewollmilchsau "Eclipse".

    Wieso nutzt du in diesem Fall Eclipse mit ADT? Ich kann meine App in 27 verschiedene Sprachen ohne Probleme übersetzen und anzeigen lassen, und das obwohl ich mit Android Studio entwickle...
    [Blockierte Grafik: http://i.slick.pics/FUt-WvLNZ.png]


    und das sind noch nicht mal alle.

    Hier noch etwas zusätzliche Info...
    para_popup.xml



    jede Row meiner Tabelle bekommt diesen onLoongClickListener...


    in Zeile 22 wird ein ParaEdit erstellt, das ist eine Klasse die das GridLayout der para_popup.xml füllt...
    Hier nun die wichtigsten Ausschnitte aus der ParaEdit Klasse...


    Bei den "/////////////////" hab ich unwichtigen Code ausgelassen, da meine ParaEdit 595 Zeilen hat.

    Hey folks, ich habe große Probleme mit meinem Spinner.
    [Blockierte Grafik: http://preview.slick.pics/FUnaKXCKJ.png]


    Mein Popup wird angezeigt, aber sobald ich den Spinner öffnen will crasht meine App mit folgendem Fehler...


    Ich vermute das ich dem Spinner einen falschen Context beim initialisieren gegeben habe, und zwar habe ich folgendes übergeben...

    Code
    Variables.mainActivity = MainActivity.this;
    .
    .
    .  
    
    
      Activity mContext = Variables.mainActivity;
      Spinner ecb = new Spinner(mContext);

    ist es möglich das ich dem Spinner irgendeine View o.ä. vom Popup bzw. PopupWindow geben muss?

    Ahhh Script-Kiddies ?( da denkt er weil er fehlerfrei seine Playstation bedienen kann, hat er Ahnung vom programmieren...tz tz tz


    Man muss sich ja nur mal überlegen wie lange es gedauert hat bis viele geniale Köpfe auch nur einen Ansatz einer Programmiersprache erfunden und entwickelt haben. Solche Sprachen wachsen und formen sich mit den Jahren und ganz ehrlich, ich dachte auch das ich Java beherrsche, als ich meinen Techniker in dem Fach mit ner 1,0 abgeschlossen habe.
    Aber da kam ein ganz schöner Sprung mit dem Einstieg in die Berufswelt, die Logik für vollautomatisierte Maschinensteuerungen zu entwickeln.


    Wenn dir der Ansatz einer Programmiersprache zu komplex ist, kannst du ja auch gerne versuchen im Binärcode mit deinen Geräten zu kommunizieren :P

    Aktuell sieht es so aus...
    [Blockierte Grafik: http://preview.slick.pics/FUk449nHB.png]


    schon ganz ordentlich, nur wie gesagt, ist es möglich das die 3 Spalten sich die komplette Breite des Popups zu nutze machen?


    und kann mir jemand erklären warum das letzte Element aus der Reihe tanzt =O


    meine Methode wird immer genau gleich aufgerufen.

    EDIT:
    ENTWARNUNG !!


    Es war ein einfacher copy-paste Fehler in Zeile 9 des obigen Codes :P


    Nun bleibt noch das Problem das die Spalten sich nicht auf den vorhandenen Platz ausdehnen. Das setzen der Gravity wird somit von meinem Layout ignoeriert ( Zeile 6 )

    ich hasse es... :-X


    es macht einfach nicht das was ich will...


    Das Gridlayout hat von mir folgende Attribute bekommen...

    XML
    <GridLayout
            android:id="@+id/glData"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:columnCount="3"
            >

    Es passt sich also in der Breite seinem Parent an, wie kann ich es nun schaffen das sich die Spalten ( 3 Stück ) den vorhandenen Platz aufteilen?
    Java Code wäre da sehr hilfreich. Wenn ich einem Element die LayoutParams.MATCH_PARENT setze dann wird eine Spalte schon so groß wie das gesamte GridLayout.
    :-/
    Setze ich allerdings LayoutParams.WRAP_CONTENT wird die Spalte gerade mal so breit wie das Element das am meisten Platz braucht.
    :-/


    Diese LayoutManager bringen mich irgendwann noch zur Weißglut...

    die Fehlerausgabe sagt ganz klar ...

    Code
    at com.example.endlich.MainActivity.aufteilen(MainActivity.java:43)




    und das entspricht bei ihm ...

    Java
    textview1.setText(parts[0]);


    dieser Code wirft bei mir ebenfalls einen Fehler..

    Java
    java.lang.reflect.Array parts;
    
    
      public void aufteilen() {
        String[] parts = ring.split(".");
        System.out.println(parts[0]);
        System.out.println(parts[1]);
      }


    Frag mich nicht warum, aber irgendwas ist an der split() Methode anders als bei Java. So funktioniert es...

    Java
    String[] parts = ring.split("\\.");

    Alternativ kannst du aber auch den StringTokenizer verwenden.

    Java
    public void aufteilen() {
        StringTokenizer tokens = new StringTokenizer(ring, ".");
        System.out.println(tokens.nextToken());
        System.out.println(tokens.nextToken());
      }