Beiträge von drumliner

    dann fragst du im java code den ländercode ab String xmlLanguage = getRessource().getString("language")
    (die syntax könnte falsch sein das hab ich gerade nur ausm kopf gemacht :<)


    Fast korrekt ^^


    Zur Auswahl stehen:


    getRessource(). +



    getString(int id)
    getString(int id, Object... formatArgs)
    getStringArray(int id)

    Hallo Funtik,


    dafür kannst du den ContactsContract Content Provider nutzen:


    Java
    getContentResolver().query(
        Contacts.CONTENT_Uri,   
        mProjection,                        
        mSelectionClause                    
        mSelectionArgs,                    
        mSortOrder);


    Pass beim importieren auf, dass du android.provider.ContactsContract verwendest und NICHT android.provider.Contacts.


    Um die Bilder zu erhalten, kannst du die Methode openContactPhotoInputStream(ContentResolver cr, Uri contactUri) nutzen.


    Bsp:


    Java
    InputStream photo_stream = ContactsContract.Contacts.openContactPhotoInputStream(getContentResolver(),my_contact_Uri);            
    BufferedInputStream inputStream = new BufferedInputStream(photo_stream);
    Bitmap bitmap = BitmapFactory.decodeStream(inputStream);
    //Tada du hast dein Bild ;)



    Für weitere Informationen solltest du dir die Dokumentation ansehen:


    http://developer.android.com/r…der/ContactsContract.html
    http://developer.android.com/r…ract.ContactsColumns.html

    Hallo miteinander,


    mich beschäftigt derzeit die Frage inwieweit ich GPS / Glonass innerhalb meiner App besser unterscheiden kann. Derzeit prüfe ich über public int getPrn () die PRN Nummern (65 – 96) um zu sehen ob Glonass verwendung findet. Allerdings würde ich doch gern wissen, ob die Position nun durch einen GPS bzw Glonass Sateliten geliefert wurde. Wenn nur GPS / Glonass verwendung findet ist das klar, aber nicht wenn GPS und Glonass gleichzeitig verwendet werden.


    Des Weiteren frage ich mich ob die Integration bei den Geräten nahtlos implementiert wurde. Leider findet sich in der Dokumentation keinerlei Hinweis darauf (Oder ich übersehe es einfach).

    Was ist den dein Problem beim Verständnis der vorgestellten Lösung?


    Zu deinem Quelltext:


    Erstell dir am besten für deinen Adapter eine eigene Datei anstatt das als innere Klasse mit festem Context zu verwenden. Es hat so den Vorteil, dass du diesen Adapter auch aus einem anderen Context verwenden könntest.


    Dafür legst du z.b folgende Instanzvariablen an:


    private Context context;


    sowie private List<PromptInput> promptinputs; (Hierfür erstellst du dir einfach eine eigene Klasse, welche ein einzelnes EIngabeobjekt bezeichnet)


    erstell jetzt einfach deinen Konstruktor z.b:


    Java
    public MyAdapter(Context context, List<PromptInput> promptinputs) {
    		super(context, android.R.id.content, promptinputs);
    		this.context = context;
    		this.promptinputs = promptinputs;
    	}


    beides initialisierst du somit im Konstruktor.


    Nun legst du dir einfach eine neue layout.xml an, welches eine einzelne Zeile in deinem ListView präsentieren soll.


    In der Methode:


    Java
    getView(int position, View convertView, ViewGroup parent)


    kannst du nun deine eigene layout.xml setzen:


    Java
    LayoutInflater inflater = (LayoutInflater)context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
    convertView = inflater.inflate(R.layout.cell, null);


    über das View kannst du nun problemlos auch die Referenzen holen:


    convertView.findViewById(int id);


    Das Layout brauchst du natürlich nur einmalig inflaten ;) Des Weiteren solltest du dir einen Viewholder anlegen um die Performance zu steigern.




    Beispiel für deine MyAdapter Klasse:



    Wäre ideal wenn du dich noch dran erinnern könntest, welche Probleme du damit hattest :) Über der Configuration gibt es eig. keine Probleme und bei Locale eig. auch nicht vorausgesetzt man weiß, dass man auch andere Werte bei "Locale.getLocale().getLanguage()" bekommt, wenn man irgendwo selbst die Sprache gesetzt hat "Locale.setDefault("de")". Nicht das du damit ggf. Probleme hattest xD


    In meinen Projekten verwende ich recht häufig die eingestellte Sprache, wenn das Fehlerbehaftet wäre, wären auch meine Statistiken die ich damit aufbaue sinnfrei. Also denk nach und sag an wo das Problem lag / liegt ;D

    Zitat

    1. oben bei src ist die Endung *.java und unten bei layout *.xml was soll das genau? Das sind doch zwei unterschiedliche Sprachen die Eclipse zu einer macht?


    Ja es sind zwei unterschiedliche Sprachen. Java ist hierbei die Hochsprache (Programmiersprache). XML hingegen ist eine Auszeichnungssprache. In XML definiert du quasi Inhalte etc.


    Zitat

    2. da hier Buttons im Spiel sind warum wird hier nicht auf den onClickListener verwiesen bzw. wo steht dieser in meinem Beispiel?


    Weil ein Button einen onClickListener benötigt (Wenn etwas auf knopfdruck ausgeführt werden soll). Er muss so z.b Wissen was auf Knopfdruck ausgeführt werden soll. In deinem Beispiel wurde auf der programmatischen erstellung des onClickListeners verzichtet. Du hast in deiner xml allerdings das Attribut onClick gefolgt vom Methodennamen gesetzt. Diese Methode wird demnach bei klick angesprungen.


    Möchtest du deinen Button programmatisch erstellen gehst du z.b wie folgt vor:



    Du siehst hier sehr schön, dass setContentView nicht nur Layout Resourcen sondern auch Views entgegenimmt.


    Zitat

    setContentView(int layoutResID)
    Set the activity content from a layout resource.


    void setContentView(View view)
    Set the activity content to an explicit view.


    Selbstverständlich kannst du im Quellcode auch eine Referenz auf dein Button, welchen du via XML erstell hast holen. Dies geschieht mittels:


    Java
    Button button = (Button)findViewById(R.id.buttonid);


    im nächsten Schritt könntest du jetzt z.b den onClickListener für den Button setzen etc.


    Zitat

    3. Würde mir zum über am Anfang auch eine Java Referenzkarte (Befehlskarte) helfen oder ist das rausgeschmissenens Geld? Siehe Beispiel von http://www.terrashop.de/it-praxis-progra…-15/eineuro.php


    Das wage ich ganz stark zu bezweifeln, dass dir dies viel bringen wird. Zumal dort auch keine Java Befehlskarte erhältlich ist?!? Du solltest wie des Öfteren erwähnt wirklich die Grundlagen erlernen. Des Weiteren wäre hier die Dokumentation deutlich hilfreicher:


    http://developer.android.com/reference/packages.html


    Allerdings sei hierbei erwähnt, dass auch das verstehen und zurechtfinden "erlernd" werden muss. Ich habe schon sehr viele Entwickler kennengelernt, die es scheinbar nicht auf der Reihe bekommen sich mit der Dokumentation anzufreunden.


    Zitat

    4. es gibt zwar eine Menge Tutorials und Beispiele zum Aufruf von dem Date- und TimePicker jedoch niergends wie ich diese aus einem Textfeld aufrufe und das Ergebnis dort auch speicher. Hat hier jemand eine Link für mich?


    Noch mal zum mitschreiben. Du willst ein TextView erstellen, welches auf klick einen Date bzw. TimePicker gesondert öffnet und die gewählten Werte im TextView anzeigen lässt? Dann erstell dir lieber statt ein TextView ein Button geb ihm dieses Attribut:


    Code
    android:background="@android:color/transparent"


    setze deinen onClickListener und lass dein eigenes View mit Date bzw TimePicker anzeigen. Die Daten kannst du dann in jeweiligen Listener setzen:


    http://developer.android.com/r…nDateChangedListener.html
    http://developer.android.com/r…nTimeChangedListener.html



    Wichtig ist hier vor allem aber ersteinmal das erlernen und verstehen der Grundlagen, dann kommst du auch von allein drauf wie man dies umsetzt. Wir helfen hier alle sehr gerne, allerdings werden wir nicht alles vorprogrammieren. Schliesslich muss jeder Entwickler sein eigenes Knowhow in seine App einfließen lassen und selbst nachdenken können. Anregungen bzw. Hilfestellungen gibt es immer, aber wie gesagt sollte man dann schon etwas eigen Initiative zeigen.


    So nun lehn dich bitte nicht zuweit aus dem Fenster, sondern geh einige Schritte zurück und lern die Grundlagen. Wie bereits gefühlte 100mal erwähnt -> Java ist auch eine Insel und die Online Trainings von Google:


    http://developer.android.com/training/index.html


    Bzgl. es gibt zwar eine Menge Tutorials:


    Es gibt Online sehr viele Tutorials, allerdings ist davon ein Großteil einfach nicht durchdacht bzw. veraltet. Halt dich einfach an unseren Tipps und alles wird gut.

    http://developer.android.com/reference/java/util/Locale.html


    Java
    getResources().getConfiguration().locale.getLanguage()


    ISO3 Standard:


    Java
    getResources().getConfiguration().locale.getISO3Language()



    Wenn du selbst die Sprache innerhalb der App setzt bzw. manipulierst, kannst du über:


    Java
    Locale.getLocale().getLanguage()


    bzw.


    Java
    Locale.getLocale().getISO3Language()


    gehen.


    Hier hast du die Möglichkeit über Locale.setDefault("de"); die Standardsprache zu ändern. Diese wird dann auch anstelle der Eingestellten Systemsprache ausgegeben.

    Im ernst du machst dir scheinbar echt selbst zuviel Stress. Es ist nunmal so, dass eine neue Sprache nicht von heute auf morgen erlernt wird. Jeder, selbst die Profis lernen täglich dazu. Bzgl. Grundlagen: Nehm dir selbst die Zeit 2-3Monate täglich 2-3 Std ein wenig zum Thema lesen / umsetzen und du wirst sehen es bessert sich nach und nach.


    Wenn dir das schon zuviel ist, lass es bitte ganz sein. In der Zeit wirst du wirklich nur an der Oberfläche gekratzt haben und die Grundlagen drauf haben Programmieren erfordert eine Gewisse Disziplin beim lernen!


    Fang wirklich ganz klein an. Liess dir das kostenlose Buch "Java ist auch eine Insel durch", welches Lucas hier auch schon verlinkt hat. Evtl. sogar 2-3 mal das ist normal und überhaupt nicht schlimm. Sich selbst reduzieren sollte man aber auf gar keinem Fall. Nehm dir ja kein Buch für Dummies, du wertest dich wenn auch nur unbewusst selbst ab.


    Alternativ gibt es von Galileo Press bzw. Video2Brain gute Video-Tutorials.


    z.b:


    http://www.video2brain.com/de/…-entwickeln-mit-android-4
    http://www.galileocomputing.de…ssion=64004834A5.cnF1JD.U


    Das Training von Mike Bach solltest du evtl. nicht kaufen. Ich finde es qualitativ jetzt nicht sehr besonders. Teilweise sind die Videobeschreibungen auch sehr fehlerhaft.

    Zitat

    In einem Punkt muss ich dem Guten jedoch widersprechen.


    Hatte damit hauptsächlich die Leichtigkeit der Sprache gemeint :) Ansonsten hast natürlich recht ^^ Hab damals ja auch mit Objective-C als richtige Entwicklungssprache angefangen (PHP zähle ich jetzt mal nicht dazu ^^).

    Mach dir einfach keinen Stress beim erlernen der neuen Sprache. Überleg dir zum Anfang einfach ein paar kleine Programme die du erstellen könntest und überleg dir noch vor dem anlegen des Projektes wie du dieses angehen möchtest (ggf. Skizzen / Ablaufplan etc).


    Um den Lerneffekt zu steigern, solltest du dein gewonnenes Wissen und deine Gedankengänge aufschreiben.


    Bzgl. import des Projekts. Wenn du das Projekt über Eclipse importierst wird die R Klasse nochmals generiert. In der Zeit existiert diese nicht und es kommt zu Fehlern. Im rechten unteren Bereich von Eclipse kannst du den Status überprüfen. Merk dir das für die Zukunft, ab und an kann es schonmal dauern bis die R Klasse neu generiert wurde.


    So dann noch alles Gute für die morgige Operation.

    Also fangen wir mal an. Du möchtest zwei Acivity's haben hast aber nur eine und auch nur eine in der AndroidManifest definiert.
    Ich habe dir dementsprechen eine neue Activity "SecondActivty.java" sowie das dazugehörige Layout "activity_second.xml" angelegt.
    In der AndroidManifest habe ich diese dann definiert.


    Entfernt:


    R.java innerhalb deines Pakets (com.example.cedapp) (Warum hast du die hier erstellt?)
    Die R Klasse gehört in den gen Ordner und wird automatisch erstellt. Im Grunde gilt hier: Lass die Finger davon!



    Änderungen am vorhandenen Quelltext:


    activity_main:


    Hier habe ich wie bereits erwähnt onclick in onClick "Achte auf die Groß/Kleinschreibung" geändert. Ausserdem habe ich den Kommentar anständig gesetzt.


    Main.java:


    Mit dem Quelltext kann das auch nicht funktionieren. Du hast hier zwei fehlende Imports:


    • import android.view.Menu;
    • import android.view.View;


    PHP
    final Button b = (Button) findViewById(R.id.btn_data_input);


    Habe ich entfernt, da du hier keine referenz zum Button benötigst. Bei deiner definition führt dieses übrigens zu einer Nullpointer Exeption. Du musst schon sicherstellen, dass du das View holen kannst. Dies ist in dem Klassenattribut nicht möglich. Du musst für solche Fälle sicherstellen, dass das contentView gesetzt ist und du die Referenzen holen kannst. Also merke hier knallt es!!!!! Der Import import android.widget.Button; ist nun also auch überflüssig und wurde entfernt. Übrigens gibt es die ID in deinem layoout nicht. Dein Button hatte die ID: button1 und nicht btn_data_input.


    Du willst ja nur beim buttonklick auf die "zweite Seite" gelangen, allerdings leitest du dich in deiner Methode nicht auf einer "zweiten Seite" weiter sondern änderst nur den ContentView. Ich habe einfach mal ein neues Intent angelegt und mittels startActivity(intent) wird die zweite Activity gestartet.


    PHP
    b.setOnClickListener(new OnClickListener() {


    Des Weiteren brauchst du keinen onClickListener zu setzen, wenn du bereits in der Layout.xml (activity_main) festgelegt hast welche Methode angesprungen werden soll beim klick auf dem Button: zweiteseite(View view). Ausserdem hast du diesen nicht vollständig implementiert bzw. überhaupt geschlossen. Alles was geöffnet wird, muss auch wieder geschlossen werden!!



    Hier findest du das geänderte Projekt:


    http://www.uploadarea.de/uploa…xg1og1ekcxvwmxkwjicg.html


    Tipps:


    Wenn ein Fehler angezeigt wird lese ihn und versuche diesen zu beheben.



    Nehm dir bitte Zeit und verinnerliche zum Anfang die Trainings von Google:


    http://developer.android.com/training/index.html


    Wichtig ist vor allem relaxed an der Sache zu gehen und ggf. mehrfach lesen / probieren. Es hat derzeit den Anschein, dass du etwas angespannt an der Sache gehst (Hast du evtl. Zeitdruck?).

    1.) An der Uploadgrenze im Forum kann nur der Admin etwas ändern. Lad dein Projekt doch einfach bei einem freien Dienst hoch. Evtl. http://www.uploadarea.de/ oder einen der weiteren zich Dienste ;)


    2.) Ja du kannst hier Private Nachrichten senden, einfach im eingeloggten Zustand oben auf Private Nachrichten gehen -> Neue Nachricht erstellen usw.


    3.) Kenn ich nicht einmal.

    Und wenn wir eh schon bei Tastenkürzeln sind mit strg+shift+f alles schön formatieren lassen :D


    Bzgl. onClick im Layout: Also ich habe bereits mit einigen Agenturen zusammengearbeitet und irg. nutzt fasst jede die Mögichkeit und profitiert davon :) Ich tu es auch gern. Es hält den Code einfach lesbarer.

    Hallo Katsche,


    dann solltest du dir mal andere Sprachen ansehen. Dann wirst du Java lieben lernen :) Die Hürde ist bei Java eig. sehr niedrig. Deine verzweifelungen werden aber sicherlich bald der Vergangenheit angehören.


    Also zuerst einmal du kannst einfach dein komplettes Projekt anhängen. Wenn du das nicht möchtest "weil ganz viel geheimes zeugs darin gemacht wird :) " lädst einfach nur die Fehlerhaften Dateien hoch. Die .apk brauchst du nicht hochladen, es sei den du möchtest uns als Betatester arangieren ;)


    In deinem Fall sehe ich aber erstmal zwei Dinge:


    1.) Kommentare in XML werden so geschrieben <!-- Ich bin ein Kommentar danke -->
    2.) Deine R Klasse ist nicht generiert wurden, was sicherlich auf deiner Fehlerhaften .xml zurückzuführen ist. (Sieht man im zweitem Screen, dass nichts im gen Ordner zu sein scheint)


    Klick einfach mal auf den Roten Punkt und teile uns die Meldung mit ;)


    Edit: Warum ist eig. in deinem Paket com.example.cedapp eine R.java ? Was macht die bitte bei dir ? Ach und schau mal auf "android:onclick", müsste android:onClick geschrieben werden.

    Das Android-SDK bringt von Haus aus bereits viele Icons mit, welche innerhalb der eigenen App verwendet werden können. Dennoch ist es derzeit nicht möglich direkt aus der App darauf zuzugreifen.


    Google möchte hingegen, dass ihr die benötigten Bilder aus den jeweiligen Verzeichnissen auswählt und in euren drawable Ordnern kopiert.


    Die Icons findet ihr in den drawables des SDK’s unter:


    pfad_zum_android-sdk\platforms\”android-xx”\data\res\


    Benötigt ihr z.B ein Info Icon findet ihr es unter:


    pfad_zum_android-sdk\platforms\”android-xx”\data\res\drawable-hdpi\ic_dialog_info.png


    *”android-xx” steht für eine beliebige Version.


    Hab es auch im Blog veröffentlicht: http://magesty.de/?p=41 :sleeping:

    Na wenn du eh nichts anderes als die Telefon/SMS Funktion nutzt reicht auch nen alter Nokia knochen der 1-2Wochen durchhält :)


    Ich nutze hingegen relativ selten die Telefonfunktion des Geräts :D Meine Top Apps belaufen sich dabei auf Nachrichten (Whats App, Email etc), Surfen. Natürlich kommen meine eigenen Apps dazu ;)


    Bzgl. Android hätte ich dir vor einiger Zeit vermutlich zugestimmt. Bei mir hat sich die Ansicht aber echt gewandelt. Das reine System gefällt mir sogar sehr gut. Allerdings muss ich schon sagen, dass was Samsung mit TouchWiz bzw. HTC mit Sense macht finde ich nun auch nicht so toll gelöst. Das neue 5.0 Sense lässt sich wenigstens relativ gut nutzen und gefällt mir auch soweit (Bis auf einige Dinge). Finde es dennoch nicht besonders, dass die Hersteller uns vorschreiben wollen, welche Oberfläche man von vorn herein nutzen soll (ohne zusatzprogramme). Dies führt dann im umkehrschluss auch oft wieder zu Update verspätunge (Was wohl das Schlimmste in der Android Welt überhaupt ist).

    Naja ich glaube kaum, dass das iPhone im annehmbaren Bereich für dich liegen würde :) Ist ein weißes mit 64GB ^^ Kannst aber auch gern alternativen anbieten ;)


    Zitat

    Ansonsten kommt mir generell kein Smartphone in den Privathaushalt, schon gar kein Android.


    Wie kommt´s ? Und vor allem wieseo "gar kein Android"? Weil du bereits eins hast "one V^^" ?