Beiträge von hottiwf

    GEDULD IST EINE TUGEND!!!


    Also ich hatte bisher nur angenommen, er würde nichts installieren und nichts tun. PUSTEKUCHEN! Nachdem ich die App jetzt mal per push auf die SD Karte geschoben habe und dabei schon gesehen habe, wie lange es dauert, hatte ich wohl bei der Installation nicht genugt Geduld. Habe allerdings jetzt mir eine FileManager.apk gezogen diese per adb install installiert und habe dann Facebook.apk im virtuellen Device über den Package Installer installiert.


    Dies ging, denke auch adb install würde funktionieren (die fehlende FOrtschrittsanzeige -hatte mich etwas nervös gemacht) ES DAUERT NUR SEHR SEHR LANGE!


    ALSO GEDULD!

    Muss man eventuell im virtuellen Device irgend eine Option freigeben, damit man eine App installieren darf?
    Habe App Installation von unbekannten Quellen schon zugelassen.


    Oder gibt es eine Möglichkeit die App auf die virtuelle SD Karte hochzuladen und die Facebook App dann vom
    virtuellen Device zu installieren?

    Hi Leute,
    ich hab mit das SDK für Android Eclipse von Facebook 3.7 installiert und die Samples etc. lassen sich auch ausführen.
    Das einzige Problem was ich nun habe ist, dass ich die Facebook APK die im bin Ordner mit beiliegt auf meinem virtuellen
    Device installieren möchte. Habe diese auch schon in den tools und in den platform-tools ordner verschoben bin per
    Konsole da hin gewechselt und habe "adb install FBAndroid-5.0.apk" eingegeben und wollte so installieren. Irgendwas macht
    adb auch aber leider kommt es NICHT zum Ende. Es kommt keine Fehlermeldung nichts, er abreitet einfach bis man selbst
    irgendwann abbricht.


    Was mache ich falsch?


    Habe Eclipse, den ABD und auch mein Windows schon neu gestartet, das virtuelle Device auch aber leider keine Besserung.


    Hat Jemand einen Tip?

    Zumindest hoffe ich, dass das so geht und das Referenzen auf 'menu' übergeben werden.
    Häng seit Wochen in C fest und komm dementsprechend leicht mit den Konzepten durcheinander. ;)


    ABER:
    Wenn sich Deine Menüs lediglich von Activity zu Activity unterscheiden, dann ist der Ansatz mit mehreren XML Menüs plötzlich gar nicht mehr so blöd.
    Es entfallen ja die dämlichen Switch-Anweisungen. (Ich ging von unterschiedlichen Menüeinträgen je ausgewählter Zeile ein und desselben ListViews aus.)
    Hinzu kommt der Vorteil der einfachen Lokalisierung. Es ist wesentlich einfacher pro Sprache ein paar neue Menu_<details>.xml im passenden Unterordner zu erstellen als das Ganze im Code anzupassen.


    Du machst mich echt fertig ;-P
    Okay! Bin jetzt konzeptionell wieder zurück gerudert und nehme unterschiedliche XML Files. Ich poste mal eine wenig Code wenn ich dann endlich
    an einem Punkt bin wo die ersten grundlegenden Sachen funktionieren und ich wieder Rat brauche :)


    Hab erstmal sau viel Dank für Deine ganzen Mühen! Denke mal der Schups mit dem contextual action mode
    war schon gut. Ich bastel jetzt erstmal ein wenig (hoffe mal ein paar größere Schritte machen zu können) und dann melde ich mich
    nochma. :)


    Erstmal vielen Dank!

    Eine Klasse kann kein Interface sein. Sie kann nur ein Interface implementieren.
    Dass Du keinen Konstruktor hast liegt daran, dass deine Elternklasse keinen Konstruktor braucht.
    Das hindert Dich ja nicht daran einen zu erstellen.


    Habe nun einen angelegt, aber wenn ich den Konstruktor aufrufe wird im Debug nicht mehr onCreate aufgerufen und mein Menue entsprechend gar nicht mehr gesetzt.


    Du kannst den Basic Krams durch eine eigene Subklasse ersetzen und darin herumfuhrwerken wie Du möchtest.


    ? Das hab ich nun gar nicht verstanden weil ich dachte der Basic Kram wäre schon meine Unterklasse :)!?!?!


    Ich habe wirklich absolut keine Ahnung was das werden soll…


    ALSOOOoooo....was ich eigentlich möchte....ich möchte ein java File haben in dem ich eine Klasse Basic habe. Diese Klasse implementiert das Interface
    android.widget.AbsListView.MultiChoiceModeListener. In dieser Klasse möchhte ich die komplette Menue Erstellung bzw das handling realisieren.


    Auch weiß ich nicht, wie Du es schaffen möchtest je nach ausgewähltem Element unterschiedliche Menüeinträge zu präsentieren.


    NEIN nein...ich möchte nur beim Erstellen das Menu dynamisch gestalten. Sprich es soll wie folgt sein.
    Activity1 ruft new Basic(menu1) auf
    Activity2 ruft new Basic(menu2) auf
    jetzt unterscheidet sich menu1 in dem Fall, dass es zum Beispiel keinen share Button hat.


    Also ich möchte ein dynamisches Menue je entsprechend pro Activity oder besser gesagt pro ListView der jeweiligen Activity.


    Es kann sein, dass ich absolut auf dem Holzweg bin...vom Konzept her. Aber wir waren uns ja eigentlich einig, dass X belieb viele Menues unter den Resourcen zu erstellen Humbuk wäre....`!?!?

    Super! Das hat mir erstmal echt weitergeholfen.
    Hätte jedoch gern noch die Möglichkeit der Methode


    onCreateActionMode(ActionMode mode, Menu menu)


    irgendwie ein weiteres Argument uebergeben zu koennen? Also quasi eine Liste welche Buttons in dem Menue aktiviert sein
    sollen, oder ein int Wert welches Menue ich aktivieren will oder so? Haettest Du da einen Tip?


    Hatte mir überlegt in meiner Klasse eine statische Variable anzulegen die ich MenueArt nenne und die ich im KOnstruktor setze...nun hab ich ja aufgrund des implements android.widget.AbsListView.MultiChoiceModeListener
    eine Klasse die ein Interface ist und somit keinen Konstruktor in dem Sinne hat. Rufe das Ganze nämlich so auf:


    theListView = (ListView) findViewById(R.id.list);
    theListView.setChoiceMode(ListView.CHOICE_MODE_MULTIPLE_MODAL);
    theListView.setMultiChoiceModeListener(new Basic());


    hätte jetzt gern so was wie die Möglichkeit:


    new Basic(int menue1);
    new Basic(int menue2);
    new Basic(int menue3);


    oder


    new Basic(int[] buttonIDs);


    oder Ähnliches......


    Verstehst Du was ich will :) ???

    Hi,
    so ich bin nun so weit und habe fast alles umgestrickt und benutze nun einen
    android.widget.AbsListView.MultiChoiceModeListener


    public boolean onCreateActionMode(ActionMode mode, Menu menu)
    {
    // Inflate the menu for the CAB
    MenuInflater inflater = mode.getMenuInflater();
    inflater.inflate(R.menu.context_menu, menu);
    return true;
    }


    Jetzt meine Frage zum Thema Menue und dynamisch. Kann ich anstatt R.menu.context_menu ein dynamisches Menü per Java Code
    erstellen? Und wie rufe ich dann am Besten die CreateActionMode Methode auf? Da es sich um ein Interface handelt kann ich ja nicht einfach statische
    Methoden implementieren, die mir eine entsprechend dynamische Instanz zurückgeben oder doch?


    Auf gar keinen Fall. Das ist totaler Blödsinn.
    Wobei einige Implementierungen in der Tat nach einem langen Anklicken ihre Toolbar anpassen. Man muss abwarten, ob das die Zukunft wird. Ich bin ein Freund von Kontextmenüs.



    Jedenfalls werden Kontextmenüs und Kontext-Actionbars in einem Android Guide beschrieben.


    Ah, erst einmal Danke! Bin jetzt umgeschwenkt zu
    Using the contextual action mode
    Finde das auch schicker, mal sehen ob ich das "Standard" alte Context Menue (Creating a floating context menu
    ) für Api kleiner 11 noch unterstütze. Das unterscheidet sich ja auch (vom Aussehen) sehr gering zu meinem AlertDialog den ich bisher
    realisiert habe. Mal sehen wie ich das Ganze hinbekomme. Werde bestimmt nochmal nerven (müssen) ;)

    Moin.


    Also ich bin ja nach wie vor ein Freund von 'Machs wie Dein OS' und würde an Stelle eines eigenen Dialogs die Menüs benutzen.
    Da könnte man dann ziemlich simpel Einträge hinzufügen, löschen oder austauschen.


    Hi!
    Also Du würdest die Einträge in der Liste bei anklicken als makiert setzen und dann unten im Menü die entsprechenden Optionen anzeigen? Oder
    in der ActionBar? Ist es so unüblich bei längerem drücken auf ein List Element ein PopUp Dialog erscheinen zu lassen? Hatte eigentlich so im Gefühl, dass ziemlich viele Apps das so machen!?



    Alternativ ließe sich je Dialog eine XML-Datei anlegen und eine eigene Handler Klasse basteln. Ist natürlich ein bisschen mühsam immer den Handler umzuschreiben…


    Da tippt man sich ja tot und es sieht auch noch scheiße aus.


    Sehe ich genauso, wollte das auf keinen Fall so machen!



    Da Du ja gern herumvererben möchtest wäre doch so etwas eine Alternative:


    Im Prinzip also ein Anwendungsbeispiel des Static Factory Pattern.


    Habe jetzt eine Klasse. Also meinen Basic Dialog und da die statische Methode > getInstance implementiert.
    Dieser uebergebe ich entsprechend welcher Dialog erstellt werden soll und diese liefert mir entsprechend das
    Objekt so wie ich es haben möchte.



    Von einer All-In-One Lösung mit Ausblenden nicht benötigter Elemente rate ich Dir ab.
    Das wird unglaublich unübersichtlich und unsagbar schwer anzupassen.


    Denke da es maximal 10 unterschiedliche Buttons geben wird, ist es noch handlebar. Ich wollte jetzt nicht für jeden
    Dialog der gesamten App eine SuperDialogHandlerKlasse bauen :)


    Werde gleich mal weiter proggen und mich bestimmt hier nochmal zu Wort melden, weil so ganz Licht am Ende des Tunnels seh
    ich noch nicht :)

    Hi,
    ich hab eine Frage zum Thema Dialoge.
    Ich habe eine App in der ich ein paar unterschiedliche ListViews habe. Bei langem oder einfachem Click auf die einzelnen Elmente
    soll sich jetzt ein custom Dialog öffnen, der zum Beispiel einmal die Buttons: Delete, Update, Show enthält, ein anderes Icon soll aber
    im Dialog nur Delete anbieten, bei einem anderen dann wieder Update, Teilen etc.


    Also es soll quasi immer der "gleiche" Dialog sein, der aber je nach Item eine bestimmte Kombination von Buttons enthält.


    Nun meine Frage zum Konzept....
    wie genau würdet Ihr das bewerkstelligen?


    Die simpelste Lösung wäre ja für jeden Dialog eine eigene XML Datei und eine eigene Handler Klasse anzulegen.
    Aber ist das der Weisheit letzter Schluß? Gibt es da eine elegantere Lösung?


    Hatte so an Sachen gedacht wie Vererbung aber das ist ja bei XML Dateien so nicht möglich?! Dann bin ich über den Begriff imports gestoßen.


    Hatte dann gedacht ich mache eine XML Datei mit ALLEN möglichen Buttons und blende je nach HandlerKlasse entsprechende Buttons aus....habe das aber mit setVisibility irgendwie nicht recht hinbekommen und meine Frage wäre dann, sind die Buttons dann auch noch richtig angeordnet oder an der Stelle wo der Button eigentlich wäre eine leere Stelle?


    Gruß Marcel

    Hi Leute,
    ich habe eine FragmentActivity in der ich mehrere Fragmente habe. Logisch! :)
    Ich hätte jetzt gerne, dass wenn ich den Titel des Fragmentes anklicke, ich in eine onListenerMethode lande,
    bzw. möchte ich dann eine andere Activity aufrufen. Ich hab schon versucht alle möglichen Sachen an meinen
    FragmentStatePagerAdapter drannzuhängen.


    Zum Beispiel:
    public class SectionsPagerAdapter extends FragmentStatePagerAdapter implements android.content.DialogInterface.OnClickListener


    Aber egal was ich per implements raussuche nichts funktioniert. Hat Jemand einen Tip?
    Oder muss ich das Ganze auf die FragmentActivity hochziehen? Hab ich aber eigentlich auch schon probiert......


    Wäre für einen Schups in die richtige Richtung echt dankbar.


    Grüße!

    War gestern etwas spät, habe aber noch Folgendes ausprobiert.
    Habe mal im Emulator AVD die Kamera emuliert / aktiviert und den Test diesmal mit der Kamera App wiederholt. Wie bereits geschrieben, habe ich immer
    nur Dateimangaer oder die Gallery als bildliefernde App benutzt, weil ich gelesen hatte, dass die Kamera App emuliert manchmal spinnt. TJA WAS SOLL ICH SAGEN..... diese funktioniert aber tadelos! Es wird das Bild zurückgegeben und an entsprechende Stelle gespeichert genauso wie ich es haben möchte.


    Unterstützt die Gallery App nicht MediaStore.EXTRA_OUTPUT ? Muss ich also doch komplett gesondert auf unterschiedliche Apps reagieren? Dachte ich habs schön einfach und sage in Android einfach egal welche App ein Bild zurückliefern kann, gebe ich in einer Liste aus und egal welches ich davon auswähle brauch ich nur als Reaktion:


    Uri outputFileUri = Uri.fromFile(photoFile);
    data.putExtra(MediaStore.EXTRA_OUTPUT, outputFileUri);


    aufrufen und muss mich um nichts weiteres kümmern :) Zu einfach gedacht was :) ???

    Soweit ich das sehe, muss nach http://developer.android.com/guide/topics/media/camera.html


    Das Output Extra mit dem Intent übergeben werden.
    Dann sollte er nicht nur die Datei anlegen ;)


    Also ich habe das jetzt so verstanden, dass ich das output extra bevor ich den intent aufrufe, erst einmal auf den intent packen muss.
    Hoffe das hab ich richtig interpretiert. Habe nun meine Methoden folgendermaßen umgeschrieben:


    Im onActivityResult ist nun nur noch erstmal der AbfrageCode drinn und zum Test wenn alles gut geht ein setzen eines int Wertes zum Debuggen.


    in meiner Methoden zum Aufbau des Dialoges ist nun das Erstellen des TEMP FIles und die Ubergabe per output extra an
    das aufzurufene intent. Ich hoffe ich hab das so richtig verstanden!?




    Denn nun kommt er nicht mehr in der onActivityResult Methode über das if:
    if (resultCode == RESULT_OK && data != null)
    hinaus. Also irgendwas schein ich da entweder falsch verstanden zu haben oder ich habe jetzt einen anderen Fehler!?

    Nabend Leute, ich bin es schon wieder :)


    Habe diesmal das Problem dass ich aus meiner APP eine andere APP aufrufe, welche mir als Result ein Bild zurückgeben soll, welches ich dann auf meine SD Karte in den privaten Bereich meiner APP speichern will.


    1. ich erstelle eine Liste aller möglichen Apps die ein Bild zurückgeben können
    2. Beim Anklicken einer der Apps wird diese gestartet und mit dem Code 55 versehen.
    Habe hierfür als Test immer erst mal die Gallery benutzt.
    3. Nachdem das Bild ausgewählt wurde, komme ich in die Methode onActivityResult wo die Funktion aufgerufen wird, mit der auf der SD Card ein File anlegt wird, in welches ich die ausgewählte Datei gespeichert werden soll.


    Bis hier hin funktioniert noch alles ohne Probleme.


    An der Stelle


    Uri outputFileUri = Uri.fromFile(photoFile);
    data.putExtra(MediaStore.EXTRA_OUTPUT, outputFileUri);


    wo die zurückgegebene Datei dann per putExtra in das File geschrieben werden soll, passiert dann aber gar nichts.
    Die Datei existiert auf der SD Card im entsprechendem Verzeichnis ist jedoch 0 kb groß -also leer.


    Habe auch schon debuggt:


    outputFileUri
    file:///storage/sdcard/Android/data/de.hotti.myapp/files/JPEG_19691231_190000_656819955.jpg


    data
    Intent { dat=content://media/external/images/media/78 (has extras) }


    Hat irgendwer einen Ratschlag. Ich habs mir auch echt nicht einfach gemacht, hab schon dutzende Code Snipets probiert und wirklich viel gelesen, aber irgendwie komme ich den entscheidenen Schritt einfach nicht weiter.... :(


    Hier meine Permissions:


    Code
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" android:maxSdkVersion="18" /> 
        <uses-permission android:name="android.permission.READ_CONTACTS" />    
        <uses-permission android:name="android.permission.CAMERA" />    
        
        <uses-feature android:name="android.hardware.camera" android:required="false" />


    Hier mein Code dazu:


    onActivityResult



    Klasse ImagePickUpUtil


    Oh Gott! Nach einem Tag wirklich extremster Kopfschmerzen hab ich es eben gefunden!!!


    list.setAdapter(adapter);


    ich hatte list nicht in meinem SectionFragment als variable definiert sondern direkt in der FragmentActivity und das auch noch statisch.
    Somit hat er wohl nur beim wirklich zerstören der gesamten Activity eine Änderung erkannt. KUNSTSTÜCK!


    Nun geht es erst einmal so wie ich es möchte.

    Ich würde normalerweise (wie mein Vorredner) einen CursorAdapter für sowas verwenden;
    wenn ich einen Custom-Adapter verwende (wie du in deinem Code), dann verwende ich adapter.notifyDataSetChanged() für den Fall, das sich Daten geändert haben.
    Im Falle des Löschens würde ich dem Adapter eine delete() Funktion spendieren, die das entsprechende Item aus der internen Datenstruktur entfernt und abschließend das notify... ausführt (die Datenbankabfrage erneut auszuführen mag für ein paar Datensätze OK sein, aber was wenn deine Tabelle mal mehrere 1000 Einträge hat?)


    Ich habe eben nochmal versucht mit notify ein ReDraw zu erzwingen, aber auch hier Fehlanzeige! War nämlich auch der Meinung das ein setAdapter das erzwingt und wollte das quasi als harte Lösung erstmal so drinn lassen....Ich glaube ich bau das mal alles auf CursorAdapter um und zerpflücke nochmal alles.


    Allerdings sollte deine Methode (neuen Adapter setzen) auf den ersten Blick eigentlich auch funktionieren, da das setAdapter() die Liste eigentlich auch zum Redraw animiert...
    Ist es sicher, das der neue Adapter den überzähligen Datensatz nicht mehr enthält (per Debugger oder Log.d() geprüft)?


    Habe dazu mal 3 Bilder angefügt. Wie gesagt ich bin der Meinung mit den Daten und dem Adapter ist alles io. Vielleicht sieht ja an meinen
    Screenshots irgendwer hier noch etwas, was ich nicht sehe.


    Bild 1 (debug1.png) zeigt den Inhalt des gesetzten Adapters auf meiner ListView vor dem delete.
    Bild 2 (debug2.png) zeigt den Adapter der auf die ListView gesetzt werden soll.
    Bild 3 (debug3.png) ziegt nun den Inahlt nach dem setzen des neuen Adapters.


    Deine getView() Methode solltest du in jedem Fall noch mal überarbeiten :)
    Der convertVew wird nicht aus Spaß übergeben, sondern damit man ihn wiederverwendet, und für jedes Item erneut einen Font zu laden (immer wieder, dank des ignorierten convertView) ist sicher auch nicht die effizienteste Art, mit den Resourcen umzugehen.


    KEINE FRAGE! Um Gottes Willen. Mir war es auch ein wenig peinlich, meinen Code den ich bisher habe zu posten, da dort viel zusammen kopierter
    Mist ist um überhaupt erst einmal einen Einstieg zu finden. Bin erst seit 2 Wochen auf Apps/Java. Habe Java mal vor 10 Jahren in der Ausbildung
    gehabt und mache eher C#, C++ und Desktop Anwendungen. Finde aber die App Geschichte und gerade Android/Google sehr spannend! Aber da muss ich
    noch sehr viel optimieren.

    Es ist wahrscheinlich nicht so kompliziert. :)
    In der class für das Fragment ( extends ListFragment ) wirst du ja wahrscheinlich über eine SimpleCursorAdapter die Liste anzeigen lassen. Diesen Code am besten in eigenen Routine speichern. Hast du ja vielleicht schon?
    Ich nenne sie dann z.Bsp.

    Code
    public void refreshLayout() {


    Jetzt musst du nur noch nach dem löschen diese Routine aufrufen.


    Ich hoffe es klappt


    Hi,
    ich habe den Code mit meinem Adapter in einer eigenen Routine: UpdateFragment()
    Ich rufe die Routine nach dem Löschen auf. Mein Problem bleibt aber bestehen, dass die Daten erst aktualisiert in der ListView dargestellt werden, wenn ich zwei mal nach rechts und wieder zurück wische. Alternative geht natürlich auch mit dem Home Button wieder in die vorige Activity zu gehen und die Activity "ZeigListe" neu aufzurufen. Bei einem NeuAufruf der Activity ist natürlich auch alles schick. Auch wenn ich nach meinem Löschen der Daten die
    Activity Liste zerstöre und mit Intent neu aufrufe ist alles ok. Blos das sollte ja nicht der Weg sein -ausserdem siehts scheisse aus wenn sich die Liste so komplett neu aufbaut.


    Ich muss doch dem ListView ganz einfach sagen können, jetzt aktualisiere Dich doch komplett einmal neu. Den Adapter mit den neuen Daten hab ich ja in meiner Methode: updateFragment der ListView schon zugewiesen.



    Hi,
    also hier erst einmal mein Adapter:



    Dann meine Methoden um die Daten zu löschen