Beiträge von drumliner

    Naja alternativ kann man ja auch einfach ne Gruppe zusammen trommeln die des Öfteren "Webinare" bzw. Diskussionsrunden ausrichtet. Wäre sicherlich einfacher Interessenten zu finden, als Regional begrenzt.

    Besser wäre es wenn du deine SQLite Helper Klasse anhängen würdest so könen wir direkt sehen was falsch am Source ist ;) Alternativ kannst auch gleich das ganze Projekt hochladen ;)


    Edit: Da isst man einmal nebenbei da schreibt der Phil schon xD

    Hauptsächlich geht es hier darum weitere Statistiken zu sammeln und die Ergebnisse zu vergleichen. Die Implementierung von Sensor wird sehr wahrscheinlich Herstellerabhängig sein.

    hehe kann aber auch schnell passieren ;) Viel Spaß beim berechnen deines BMI's :D Hast du wenigstens alles berücksichtig? Alter, Geschlecht, Körpergröße, Amputationen etc?


    Sag an was bei M / 85kg / 178cm rauskommt :D

    Hallo Henny,


    herzlich Willkommen im Forum. Dein Fehler sagt bereits aus was los ist ;) Und zwar können die Resourcen nicht geladen werden. Scheinbar hat Eclipse die benötigte R Klasse, welche du unter deinprojektname/gen/deinpaket/R.java findest noch nicht bzw. gar nicht eingelesen bzw. generiert.


    Wenn dort keine Datei ist, kann es gut möglich sein, dass du einen Fehler in irgendeiner deiner XML Dateien hast. Oft ist es allerdings auch nur ein Problem von Eclipse. Clean dazu einfach mal dein Projekt: Menü -> Project -> Clean.


    Wenn der Fehler weiterhin auftritt, schaue bitte in die Imports deiner Klassen. Wichtig ist, dass nicht die Android Standard Resource hierfür verwendest (import android.R;).

    Hi Katsche,


    bitte bitte lern die Grundlagen. Du hast in deiner App einen ganz simplen Fehler begangen. Kein Wunder wieso das TextView auch nichts angezeigt hat. Schliesslich wurde innerhalb deiner MainActivity nichts weiter definiert, was das TextView veranlassen könnte überhaupt etwas im TextView anzuzeigen zu lassen.


    Du hast innerhalb deiner MainActivity eine weitere innere Klasse erzeugt. Mit dieser machst du rein gar nichts, aber in dieser befindet sich genau jener Code den du benötigst um die Werte zu lesen und im TextView zu setzen. Da nirgends ersichtlich ist, das du überhaupt eine Instanz der inneren Klasse erzeugen willst, habe ich dir den Code mal wie folgt abgeändert:




    Im Tutorial ist übrigens auch keinerlei Hinweis darauf eine innere Klasse daraus zu erstellen ;) Wenn du schon ein Tutorial durcharbeitest, solltest du es bitte gewissenhaft abarbeiten, sonst bleibt dein Lernlevel weiterhin ziemlich gering.

    Hi beagle,


    das kann ich gern in den nächsten Tagen für dich angehen. Evtl. schreibst du mir einfach eine Private Nachricht mit weiteren Details (Was du genau wie haben möchtest). Somit ist gewährleistet, dass sich das Beispiel an nahe an deinen Vorstellungen bewegt.

    Hi whitenexx,


    du hast hier mehrere Möglichkeiten, wobei ich mich Persönlich für das Kombinierte Verfahren in meinen Apps entschieden habe. Bei der Übertragung eines Symmetrischen Keys kann es schnell passieren, dass der Key abhanden kommt und missbraucht wird (Bei Symmetrischer Übertragung). Hierbei haben beide Seiten den gleichen Schlüssel. Das Verfahren ist zwar relativ schnell, aber unter den Verschlüsselungsverfahren eher noch am unsichersten :) Mittels einer Asymmetrischen Verbindung hast du dieses Problem nicht, allerdings ist dies Verfahren sehr langsam. Für eine Asymetrische Verschlüsselung benötigst du folgendes:


    Server besitzt Private Key
    Gerät besitzt nur Public Key


    Hierfür verwendest du den Public Key und der Server kann die eingehende Verb. mit dem Private Key entschlüsseln.


    Meine bevorzugte Methode, das kombinierte Verfahren ist eine Gute Mischung aus beiden Welten (daher kombiniert). Dabei
    hat der Server wieder den Private Key und dein Mobiles Gerät nur den Public Key. Im nächsten Schritt generierst du innerhalb der App einen Symetrischen Schlüssel nimmst den und Verschlüsselst diesen mit deinem Public Key. Diesen kannst du nun zum Server senden. Auf dem Server verwendest du dann den Private Key um den Symetrischen Schlüssel wieder zu entschlüsseln.


    Nun haben beide Seiten einen Symetrischen Schlüssel der vorher nicht abgefangen werden konnte ;) Somit kannst du nun für die weitere Verbindung die Symetrische Verschlüsselung nutzen ;)


    Ich hoffe dieser kleine Ausflug ist dir bei deinem Vorhaben behilflich und hat dich nicht zu sehr verwirrt (Meine Kollegen sind immer verwirrt, wenn ich Ihnen diesen Weg erkläre. Das Problem ist hier einfach die vielen Wege. So etwas Grafisch zu erklären ist natürlich deutlich verständlicher)


    P.S: Über https:// wäre es natürlich auch möglich. Allerdings erzeugt dieser Weg massig overhead wie ich finde. (Erst Serverzert. prüfen, checksummen vergleich etc. pp)

    Du solltest dringend einzelne Dinge die du tust in der Doku studieren. Ein Thread zu "stoppen" ist alles andere als Sinnvoll. Die Methode ist veraltet und bringt die App im neueren OS unweigerlich zum Abstürzen. Auch finish() solltest du nicht vor dem starten einer neuen Activity aufführen. Das sind nur wenige von vielen Problemen die die App besitzt.


    Ich rate dir an die Grundlagen zu lernen und Schritt für Schritt die App zu entwickeln. Dabei solltest du wie bereits erwähnt die Doku studieren, damit du auch wirklich etwas anständiges produzierst.


    Was ich neben den ganzen "Problemen" auch schlimm finde, sind Methoden die eine unzählige Anzahl an Parametern besitzen. Dafür gibt es bessere Wege. Als Beispiel erstellst du eine Klasse, welche all deine Daten die du speichern möchtest beinhaltest.


    Bsp:



    Hiermit hast du nun die Möglichkeit ein eigenes Contact Objekt zu erstellen:


    Java
    Contact contact = new Contact();
    contact.setVehicle("BMW");
    
    
    etc....


    Dieses Objekt solltest du dann der Methode public void insertContact(Contact contact) übergeben. Hierin kannst du dann die Werte auslesen und setzen:


    Java
    ContentValues newCon = new ContentValues();
    newCon.put("vehicle", contact.getVehicle());
    etc.......


    gleiches gilt dann für's auslesen etc.


    Als heutiges Schlusswort erwähne ich noch einmal: Schau dir bitte die Grundlagen ,lass dir Zeit beim fertigstellen der App und ließ die Doch. Besser bedacht erstellt, als schnell fehlerbehaftet und schlecht zu warten ;)


    Falls du weiterhin Probleme hast, kann ich dir auch gern gegen einer kleinen Spende eine kleine Beispiel App erstellen ;)

    Zitat

    das myObject ist doch dann meine "ViewDatensatz.java" klasse oder nicht


    Da ich bislang keine Einsicht in deinem Quelltext hatte, kann ich das nicht genau sagen. Wenn du die Daten und deiner Instanz der ViewDatensatz Klasse setzt dann ja.


    Zitat

    was meinst du mit externem hoster hochladen ?


    Es gibt externe Dienstleister die es ermöglichen Daten zur Verfügung zu stellen. Dazu gehört z.b:




    usw.


    Wenn wir den Quelltext sehen, können wir auch direkter antworten bzw. komplette Hilfestellungen in Form von korrigierten/erweiterten Quelltext.

    myObject repräsentiert hier eine Instanz deines Objektes. Hier mal als Beispiel:




    Du kannst nun beim laden deiner Daten im DatabaseHelper eine neue Instanz mit den Werten erzeugen. Diese kannst du dann Problemlos verwenden.



    LANGUAGE_DE repräsentiert eine Spalte deiner Datenbank, nämlich genau die die deine Beschreibung für die Deutsche Sprache beinhaltet. (lashing_d) ;)



    Zitat


    kann ich denn wenn ich alles lade - wie es jetzt der fall ist, die nichtbenötigten daten - also bei deutsch alle englischen texte ausblenden ?


    Kannst du, brauchst du in dem Beispiel aber gar nicht, da du nur auf deinem Objekt (myObject) die Methode getLocalizedDescription() aufrufen brauchst. Da du die Werte dort gespeichert hast steht dir also damit genau die benötigte Übersetzung in dem Objekt zur Verfügung.



    Solltest du noch Probleme beim Verständnis haben, lad doch einfach mal dein Projekt auf einen externem Hoster hoch.

    Ach mach dir selbst nicht so nen Druck. Diese Sachen brauchst du nicht zu fürchten. So bleibt das Lernlevel etwas niedriger, also einfach selbstbewusst dran gehen und ggf. die Doku lesen. Steht ja verdammt viel zu dem Thema drin ;)


    Ich selbst nutze den LOOKUP_KEY. Von der Performance / Geschwindigkeit spürt man im normalfall eh keinen unterschied (Sehe ich zumindest so ;) ).


    Zitat

    Even If this happens, the content URI CONTENT_LOOKUP_URI combined with contact's LOOKUP_KEY will still point to the contact row, so you can use LOOKUP_KEY to maintain links to "favorite" contacts, and so forth.


    Weitgehendere Informationen findest du hier:


    http://developer.android.com/g…rs/contacts-provider.html

    Du brauchst einfach nur die Version hochzählen, App signieren und hochladen. Danach wird dein Update im PlayStore angezeigt.


    Du musst dabei selbstverständlich den gleichen Keystore verwenden, den du in deiner ersten Version verwendet hast. ;)

    Du brauchst nur beim Laden die von dir benötigte Sprache in deinem Objekt setzen. Danach kannst du dein Objekt ja einfach verwenden und dein TextView setzen.


    Da du ja nun die Variante über XML verwendest hier ein Beispiel hierfür:


    Java
    String sprache = getResources().getString(R.id.sprache);
    if(sprache.equals("de")){
        myObject.setLocalizedDescription(cursor.getString(cursor.getColumnIndex(LANGUAGE_DE)));
    } else {
        myObject.setLocalizedDescription(cursor.getString(cursor.getColumnIndex(LANGUAGE_EN)));
    }



    Nach dem laden setzt du nun ganz einfach dein TextView:


    Java
    lashingTv.setText(myObject.getLocalizedDescription());

    Na dann holst dir halt die Daten mit der gewählten ID raus und nutzt davon je nach Spracheinstellung die Zeile (langde bzw langen) und weißt diese dem Objekt beim erzeugen zu.


    Wie du unterscheiden kannst haben wir dir ja bereits auf 3 verschiedenen Arten mitgeteilt.

    Du brauchst dafür doch auch nicht zwei Datenbanken. Wenn du in einer Spalte den Lang-Code hast und diesen z.b in deiner Query einbaust passt doch alles:



    Java
    String where = "languagecode = " + langCode;
    
    
    Cursor cursor = database.query(MySQLiteHelper.MYINCREDIBLETABLE,
            allColumns, where, null, null, null, null);
    Zitat

    muss ich allerdings wohl in nen hintergrund Thread machen oder so... habe mal gelesen dass sowas geht, damit die Liste beim scrollen nicht so hakt.


    Schau dir dazu mal die speziell erstellten Loader an. Die Loader helfen dir dabei die Daten im Hintergrund zu verarbeiten. Mit dem LoaderManager stehen dir weitere Callbacks zur Verfügung (Willst ja schliesslich etwas mit den Daten machen ^^)


    *Muss mich hiermit auch noch detaillierter auseinandersetzen ;)