Beiträge von killphil75

    Du kannst ja beliebige Intents aufrufen und alle diesen Intents kannst du mit putExtra auch was mitgeben.
    Das funktioniert innerhalb von Android super. (ist ja so eine Art Kommandoübergabe)
    Du willst aber Daten von aussen übergeben.


    Entweder definierst du in deinem Programm --> ein Standardaktion für diesen Typ von Dateien -> Dann bekommt der User falls es Möglichkeiten gibt einen Auswahldialog und kann die Daten Datei mit deinem Prog öffnen. (siehe AuswahlDialog bei mehreren installierten Videoplayern)


    In deinem Fall ist ja eher die Frage, wo landet die Datei vom Nutzer ? Wo lädt er die hin ???
    Den Ort würde ich prüfen / überwachen und dann hast du ja die Möglichkeit zu schauen was der neuste Eintrag/die neuste Datei ist .

    Klingt für mich eigentlich eher nach einem Contextproblem,
    obendrein definierst du deinen Textview 2x


    einmal Lokal (in run) und einmal Global, muss also schief gehen.


    Code
    private Runnable updateUI = new Runnable(){         public void run(){             final TextView myTextView = (TextView)findViewById(R.id.myView);             myTextView.setText("updateUI called"); // ################# BREAKPOINT ###############         }     };


    Das findeView funktioniert ja nur im Hauptthread weil es ja eigentlich


    this.find ... blabla heisst


    Wenn du deinen Textview mal Global in deiner Klasse definierst und dann mal
    den Zugriff darauf testest sollte es gehen.

    Wenn die Datenbank lokal ist, dann läuft sie ja auf einem Datenbank Server , ob der nun im Netz hängt oder nicht ist ja egal.



    Sprich: der MYSQL Server hat auch eine IP und kann angesprochen werden,


    wenn du jetzt noch einen lokalen Webserver hast, kannst du dir per PHP ein paar Skripte basteln, welche den Zugriff auf die MYSQL Datenbank koordinieren.


    phil

    Hallo,


    die Frage ist, wie befüllst du den Listview mit Daten ? Sicher mit einem Adapter und der liefert ja meistens eine ID mit.
    Wenn du jetzt deinen Listview mit einem ClickListener ala


    Code
    protected void onListItemClick(ListView l, View v, int position, long id) {


    ausgestattet hast, dann kommst du ja über position super an die Einträge deines Adapters.



    Ich übergebe hier eine URL an eine neue Activity - in deinem Fall könntest du die ID des Datensatzes übergeben.
    Und in der 2ten activity holst du dir die Daten einfach wieder per.


    Code
    Bundle extras = getIntent().getExtras();
    	String url = Uri.decode(extras.getString("url"));



    Wie gesagt, interessant ist die Frage wie du die Daten momentan in deinen Listview bekommst StringAdapter,CursorAdapter oder was selbergeschriebenes ect. dannach würde ich entscheiden welche Daten du hin und her schiebst.


    der phil

    um wie wäre es mit einem 2ten Array und identischem Index ???


    pseudocode nur mal für das schema


    array Klassen = {"bla1","bla2"}
    array Klassename = {"bla1.class","bla2.class"}


    protected void onListItemClick(ListView l, View v, int position, long id)
    { String item = (String) getListAdapter().getItem(position); Toast.makeText(this, item + " gewählt", Toast.LENGTH_SHORT).show();


    Da der Itemlistener aus dem selben Array gebaut wurde kannst du ja per "position" abfragen welcher eintrag gewählt wurde.


    meinKlassenname = KlassenName[position];


    Musst jetzt nur mal schauen wegen dem Typecasting.

    Aha ah ah, kleiner Denkfehler


    du weisst doch das du immer 2 Spinner hast.


    Ich würde für beide einen Adapter erschaffen - der erste Spinner ist fix und kann gleich mit Daten gefüllt werden.
    Den 2ten befüllst du in deinen Listener, das ist ok so.


    Momentan erschaffst du bei jedem Wechel einen neuen Adapter. Das brauchst du nicht.
    Einfach nur die Daten des Adapters ändern und notifyDataSetChanged() aufrufen.


    Unten die Variante,welche ich gepostet hatte war ja unoptimiert und nur ein Beispiel:


    ArrayAdapter<String> unteradapter = new ArrayAdapter<String>(context, android.R.layout.simple_spinner_item, spinner_items_u1); unteradapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
    spinner2.setAdapter(unteradapter);


    besser wäre es, den ganzen quatsch im onCreate mit reinzupacken.


    und in deinem Listener die


    spinner_items_u1 = neue Werte zu setzen;
    spinner.notifyDataSetChanged();


    aufrufen, und schon hast du die neuen Werte.

    Vor ein paar Tagen hatten wir hier schon mal die Frage, wie man das Ding ausschaltet. Wenn du wirklich mal eine Fullscreen App, zb als Kiosk-System (sprich Präsentationsmoitor) brauchst dann macht das Sinn.



    Wenn du für 2.1 programmierst (genau wie ich), dann hätte ich kurz mal eine Frage, wie stellt er die "alten" Apps auf deinem 3.2 Tablet dar.
    Meine App ist immer im Portrait-Mode (halt wie ein Handy), wie läuft das bei Honeycomb - macht der ein Fenster auf oder stretched er das Fullscreen ???


    lg der phil

    Hmm ich habe unten rechts keine Statusbar, :)


    du hast doch bestimmt ein Tablet mit HoneyComb oder ICS, mach mal ein Screenshot, damit man weiss wo unten rechts ist bzw wie es aussieht.


    Die einzige Info die ich gefunden habe war

    Zitat

    Apps cannot add icons in the system bar. The menu icon shows up for old apps (apps that don't target API level 11 and up.)

    lg
    der phil

    http://developer.android.com/r…rd/platform-versions.html


    Das ist die Statistik der letzten 14-Tage welche immer mal aktualisiert wird.
    Tja und um möglichst viele Kunden zu erreichen, würde ich es halt auf den kleinsten gemeinsamen Nenner runterbrechen, sprich 2.1 also API 7.


    Laut dieser Statistik würde man dann ca 94% der Geräte erreichen.


    Wenn sich das im Verlauf des Jahres rapide ändern wird kann man die App API ja immer noch hochschrauben.
    Wobei ich denke das die meisten in einem halben Jahr eh immer noch 2.3.x einsetzen. Honeycomb gibt es für ein paar Tablets und ICS soll zwar bei vielen Geräten nachgerüstet werden, doch viele Hersteller winken schon ab, wegen der angeblich höheren Hardwareforderungen.


    Ich selber benutze z.B. ein Samsung Galaxy i9000 und ärgere mich über die teilweise unklaren Aussagen Samsungs bezüglich der Updatepolitik.

    Na wenn du auf PC Seite auch mit SQLite arbeiten willst, dann kannst du ja die Datenbanken 1:1 verwenden.
    Android bringt ja von Hause die Möglichkeit zur Nutzung von SQLite Datenbanken mit.


    Dann wäre dein "synchronisieren" ein einfacher Kopierprozess.

    Zitat

    ich habs jetzt hinbekommen, dass die daten in preferences gespeichert werden. allerdings als string.


    Wieso als String, du kannst doch einfach die Positionen deiner Spinner speichern und wieder setzen.



    In meinem Listener siehst du ja wie ich an die Position des Spinners komme,



    Code
    String auswahl = parent.getItemAtPosition(pos).toString();     
    
    
    if (auswahl.equalsIgnoreCase("Zeile1")) {


    Um den Quatsch nur als Int zu haben, brauche ich ja nur "pos" aus der Funktionsübergabe zu speichern, das ist ja ein Int.


    Und SHaredprefs kann auch int speichern bzw. lesen



    Code
    SharedPreferences p = context.getSharedPreferences("SpinnerPrefs", MODE_WORLD_READABLE);
        	meinePos = p.getInt("spinner_kader", 0);


    bzw. analog dazu


    Code
    p.putInt(MeinWert)




    Hmm mit dem Createresource kann ich mir gerade nicht zusammenreihmen, weil ob du das als string definierts oder die Resource nimmst ist eigentlich fast dasselbe. Zeigt doch mal den Code, bzw den Fehler den er wirft, dann lässt sich das besser eingrenzen.


    der phil

    Hallo Wax,,


    hmm interessant wäre zu wissen, um was für Daten es sich handelt.
    Wo werden diese am PC vorgehalten, nutzen andere Programme am PC ebenfalls diese Daten ???
    Stehen diese Daten in einer Datenbank ???


    Es ist in 98% Prozent unsinnig ein eigenes Protokoll zu entwickeln das es Standardprotokolle wir HTTP, FTP für solchen Quatsch gibt.


    Um per USB zu kommunizieren müsstest du ja auf dem PC ebenfalls einen Service laufen haben, der deine Daten provided. Keine Ahnung wie sehr du in USB Treiberprogrammierung fit bist, klingt aber auch wieder nach einer Bastellösung.


    Ich würde mir sicherlich (abhängig von der Art der Daten) einen Webserver (Apache) auf den PC knallen und darüber alles lösen,
    eventl. Schnittstellen für Datenbanken, lassen sich ja per php erstellen.


    Wie gesagt alles unter Vorbehalt, es kommt ja auf die Art der Daten an...

    Hmm etwas mehr Code, darf es schon sein...


    Zitat

    java.net.SicketException

    Ich hoffe jetzt mal das ist ein Schreibfehler.


    Ansonsten der Fehler sagt nur: der SNTP Client hat aufgegeben und den Request abgebrochen weil du versuchst auf etwas zuzugreifen, was vom Protokoll nicht unterstüzt wird.
    Ohne Code weiss man aber nicht was du da versuchst.


    phil