1. Exeu, 14.08.2010 #1
    Exeu

    Exeu Threadstarter Neuer Benutzer

    Hi,
    schreibe grad eine kleine App.
    In dieser soll an einer gewissen Stelle ein Array aufgebaut werden bei dem ist noch unklar ist, wieviele Einträge es haben wird, da es dynamisch generiert wird.

    Code:
    while(phone.moveToNext())
                            {
                                String phoneNumber = phone.getString(phone.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER));
    
                            }
    
    An dieser Stelle soll jede Telefonnummer die vorhanden ist in dieses Array geschrieben werden.

    Was danach heraus kommen sollte wäre dann äquivalent zu diesem hier:

    Code:
        static private String[] phones =
        {"+49223231", "+2123123"};
    
    Nur wie baue ich das ganze Dynamisch auf?
    Ich habe es schon über ArrayListen versucht und die dann versucht nachher mit toArray(); umzubauen aber das hat alles nicht wirklich funktioniert.

    Wäre cool wenn jmd nen Vorschlag hat.

    LG Exeu
     
  2. ts-apps, 14.08.2010 #2
    ts-apps

    ts-apps Erfahrener Benutzer

    Warum willst du die ArrayList überhaupt zu nem Array umwandeln?

    Kannst doch auch weiterhin damit arbeiten.
     
  3. Exeu, 14.08.2010 #3
    Exeu

    Exeu Threadstarter Neuer Benutzer

    Plan war es eine Dialogbox (Alertdialog) Aufploppen zu lassen in welchem genau diese Nummern als Auswahlmöglichkeit stehen.
     
  4. Zonnex, 14.08.2010 #4
    Zonnex

    Zonnex Fortgeschrittenes Mitglied

    Dynamisch = ArrayList!

    Einfach eine ArrayList<String> erstellen und anschließen MyArrayList.get(AUSWAHL);
    (ArrayList.get(XY) entsprich Array[XY])

    MfG
     
  5. Fr4gg0r, 14.08.2010 #5
    Fr4gg0r

    Fr4gg0r App-Anbieter (Werbung)

    Dann musst du aber im Alertdialog alles selber erstellen ;)
    Wenn du ein normales Array hast, kannst du dieses dem alertdialog geben und bist damit fertig. :)
    Ansonsten müsste auch gehen String[] numbers = new String[deine_arraylist.size()]
    int i = 0;
    for(String s: deine_arraylist)
    numbers = s;
    i++
     
    Exeu gefällt das.
  6. Exeu, 14.08.2010 #6
    Exeu

    Exeu Threadstarter Neuer Benutzer

    Der AlertBox muss ich ein Array übergeben ja.

    Habs jetzt wie folgt implementiert:
    Code:
    String[] num = new String[collectedPhones.size()];
    for(int a=0;a<collectedPhones.size();a++)
    {
    num[a] = collectedPhones.get(a);
    }
    
    Weiß zufällig jmd. wie ich aus der AlertBox das Ausgewählte Item abfrage?
    Wenn man die Box mit OK schließt soll ja die Nummer die er dort drin ausgewählt hat z.B. in ein Textfeld geschrieben werden.


    Code:
    .setPositiveButton("Ok", new DialogInterface.OnClickListener() {
                        public void onClick(DialogInterface dialog, int whichButton) {
    
    
                        }
                    })
    
    Hab dort allerdings nur den Button zur Verfügung der geklickt wurde.
     
  7. Fr4gg0r, 14.08.2010 #7
    Fr4gg0r

    Fr4gg0r App-Anbieter (Werbung)

    gibts da nicht dann einen onitemselectedlistener oder sowas?
    Zumindest gibts den in Listviews und genau diese wird dein Alertdialog ja darstellen.
     
    Zuletzt bearbeitet: 14.08.2010
  8. the_alien, 15.08.2010 #8
    the_alien

    the_alien Android-Lexikon



    Vielleicht finden wir was, das noch komplizierter ist... :eek:

    Code:
    String[] array = deine_arraylist.toArray(new String[0]);
     
  9. Fr4gg0r, 15.08.2010 #9
    Fr4gg0r

    Fr4gg0r App-Anbieter (Werbung)

    Er meinte doch bei ihm ginge das nicht. :p
     
  10. the_alien, 15.08.2010 #10
    the_alien

    the_alien Android-Lexikon

    Ja, weil er es wenn dann falsch benutzt hat ;)
     
  11. j_d_, 16.08.2010 #11
    j_d_

    j_d_ Android-Experte

    sollte es nicht
    Code:
    String[] array = deine_arraylist.toArray(new String[[B]deine_arraylist.size()[/B]]);
    heißen?
     
  12. the_alien, 16.08.2010 #12
    the_alien

    the_alien Android-Lexikon

    Nein, ein Array der Größe 0 reicht. Wird letztenendes nur benötigt um den Typ des Arrays zu bestimmen.
     
  13. j_d_, 16.08.2010 #13
    j_d_

    j_d_ Android-Experte

    kk, gut zu wissen, ich hab das noch nie ausprobiert. spart ein bisschen code :)