Beiträge von Rapax

    Ja, das geht in der Tat. So etwas ähnliches hatte ich auch schon gebastelt und getestet (naja, bei mir war erstmal die uri direkt reingeschrieben).


    Damits auf dem Telefon wirklich brauchbar wird, brauchts aber irgend eine graphische Auswahlmöglichkeit um das lokale html file zu bestimmen. Ich schau mir gerade den AndDev filebrowser an http://www.anddev.org/android_filebrowser__v20-t101.html. Vielleicht könnte man ja eine abgespeckte Form davon benutzen.

    Wie ja bekannt ist, lassen sich lokal gespeicherte html Dateien nur im html Viewer, und nicht direkt im Browser öffnen. Der Viewer hat fast keine der Funktionen des Browsers und ist somit eher unzulänglich für die Aufgabe.
    Weiter ist bekannt, dass es möglich ist, aus dem Browser heraus ein lokales html file zu öffnen, über den content:// Trick

    Code
    content://com.android.htmlfileprovider/sdcard/example/file.html


    um ein Beispielfile zu öffnen.


    Nun frag' ich mich ob's nicht möglich wäre, eine app zu schreiben, welches den filenamen des lokalen html files nimmt, diesen in die 'content:// formulierung' verpackt, dann den Browser mit dieser Adresse startet.


    Wär' sowas möglich? Wer wäre bereit sich damit zu befassen? Bin selber noch ziemlicher Anfänger, aber soweit möglich ist meine Hilfe gewiss.

    Es ist wieder mal an der Zeit für ein Status update...natürlich wieder mit dazugehörigen Fragen.


    Mein 'Volltext-Sucher' läuft nun eigentlich ganz passabel; durchsucht einen beliebigen (first level) Ordner voll txt html und xml files nach einem von Benutzer angegebenen String und gibt die Filenamen von den files in denen es etwas zu finden gab auf einer neuen Seite als 'Spinner' aus. Soweit so gut, das app scheint im Emulator, und auch auf einem richtigen G1 und einem milestone korrekt und stabil zu laufen. Sourcecode ist jederzeit erhältlich falls jemand Interesse hat.


    Aber nun...die Fragen:
    Ich krieg's nicht hin, aus meinem app heraus ein lokales html file im htmlviewer anzuzeigen. Kann mir evtl. jemand zeigen wie das geht?


    Weiter: Ihr werdet euch sicher Fragen warum ich für die Ergebnisse einen Spinner in 'LinearLayout' gewählt habe, und nicht gleich eine ListView. Tja, irgendwie kann ich anscheinend keine ListView starten aus einer Activity in LinearLayout. Ein alleinstehendes ListView app geht (HelloListView, z.B), aber sonst....? Hat da vielleicht jemand ein Beispiel?

    Vielleicht eine blöde Frage, aber wie findet man raus wie die gewünschte Aktion heisst, also was in der Klammer stehen muss?


    z.B.: ("com.google.zxing.client.android.SCAN") oder ("android.media.action.IMAGE_CAPTURE")


    Gibt's da irgendwo eine Liste, oder probiert man einfach mit der autocomplete Funktion herum?


    z.B. Wie würde ein Intent aussehen, der bloss eine neue Screen öffnet, um ein Ergebnis per ListView anzuzeigen?

    Es geht voran. Ich hab' nun eine funktionierende Methode (filesearch) geschrieben, welche bei Angabe eines Filenames (mit Pfad) und eines Strings, jeweils 'true' oder 'false' zurückgibt, je nachdem ob der string im file enthalten ist. Das ist schon mal die Kernaufgabe meiner Wunschsoftware.


    Ebenfalls kann ich die Files in einem gewählten Verzeichniss bestimmen. Da happerts aber noch beim Anzeigen der File Liste in einer ListView.


    Nächste Schritte: Directory nach .txt files filtern, und diese der Reihe nach der filesearch Methode verfüttern. Bei positivem Ergebnis den Filenamen an eine String[] anhängen, und am Ende diese Anzeigen (Hmm...nochmals ListView-problem). Ebenfalls muss ich noch rauskriegen, wie ich den String vom Benutzer eingeben lassen kann.


    Danach, rausfinden wie man auf Wunsch des Benutzers ein gefundenes File an einen Viewer weitergibt.


    Und schliesslich, GUI erstellen (sollte nicht so schwer sein) und das Ganze noch 'abspecken', d.h. effizienter machen (endlose Aufgabe).


    Wie immer, wenn jemand Ideen hat, bitte her damit!

    Hab' nach langem Herumprobieren die Lösung gefunden. in.readline gibt null zurück wenn das Ende des file erreicht wird, also eine Abfrage danach die im 'null' Fall aus der Schleife aussteigt.
    Und ausserdem muss natürlich bei regionMatches die länge des gesuchten Wortes abgesucht werden, und nicht die Länge der Zeile.


    Hier also der holprige, aber funktionierende code:

    Langsam mach' ich Fortschritte, aber nun bin ich wieder mal an einem Punkt wo ich nicht seh' wie's weiter gehen soll. Falls jemand von euch mal einen Blick auch meinen code werfen könnte...


    Hintergrund: Der code soll nach einer vorgegebenen Zeichenkette in einem Textfile suchen. Auf der simulierten sdcard liegt ein file names test.txt, mit folgendem Inhalt:

    Code
    first
    second
    third
    last


    der code sollte also die vorgegebene Zeichenkette 'hir' in der dritte Zeile finden und dann eine positive Rückmeldung geben:



    Leider kriegt ich nur die folgende Fehlermeldung:

    Code
    Sorry!
    The applikation File Search
    (process dev.molph.filesearch)
    has stopped unexpectedly.
    Please try again.


    Als ich das letzte Mal eine solche Meldung hatte, war wegen einer nicht initialisierten Variable. Aber diesmal kann ich beim besten Willen nichts dergleichen Entdecken.
    Kann mir jemand mal auf die Sprünge helfen?

    Jetzt läuft's mindestens an, aber es folgt dann ein force close 'Application ended unexpectedly'.


    Die Zeile

    Code
    lv.setAdapter(new ArrayAdapter<String>(this, R.id.lv, list));

    beinhaltet ja das initialisieren von dem neuen ArrayAdapter, oder? Also ist's wohl nicht das gleiche Problem wie beim letzten Mal als ich diese Fehlermeldung sah.

    Zitat von Rapax


    Nächster Schritt, die komplette Liste anzeigen, und evtl. vom Benutzer eins auswählen lassen.


    Nach einigem Herumsuchen bin ich nun der Meinung, das ListView vermutlich die beste Option wäre. ListView schluckt ja anscheinend gleich ein ganzes String-Array, was noch besser ist.
    Allerdings scheint es mir, als ob's für ListView kein analog zu


    Java
    tv_out = (TextView) findViewById(R.id.t_v);
    tv.setText(list[4]);


    gibt. Irgendwie muss man doch die String Array in das ListView hineinkriegen, oder? Müsste es da nicht auch etwas in der Art von

    Java
    tl_out = (ListView) findViewById(R.id.lv);
    lv.setText(list);


    geben?


    Kann mich mal jemand in die richtige Richtung schubsen?


    EDIT: Ich bin mittlerweile über dieses Tutorial gestolpert: http://d.android.com/guide/tut…views/hello-listview.html aber der gezeigte code produziert eine 'java.lang.NullPointerException'. Vermutlich wieder ein ganz simpler Fehler, aber ich seh' ihn nicht.

    Natürlich, das wars; danke. Macht auch richtig Sinn, wenn jemand mich mit der Nase drauf stösst. Nun klappt's.


    Interessanterweise sind die elemente von list nicht in alphabetischer Reihenfolge.
    list[1] ist config,
    list[2] ist cache,
    list[3] ist sdcard
    list[4] ist d
    etc.


    Nächster Schritt, die komplette Liste anzeigen, und evtl. vom Benutzer eins auswählen lassen.

    Keine Ahnung ob das hier der richtige Ort für solche Anfängerfragen ist, aber ich denk' hier kann ich zumindest niemandem auf die Nerven gehen. Also los: Ich versuch ein ganz simples progrämmchen zu schreiben, welches eine Dateiliste in einem angegebenen Verzeichnis holt, und den ersten Eintrag (müsste ja immer '.' sein, oder?) an ein TextView weitergibt. Das Verzeichnis ist zur Zeit immer noch hardcoded vorgegeben. Idealerweise müsste das App also nur einen Punkt in einem Textview zeigen. Allerdings beendet die App jeweils unerwartet, und ich krieg nur einen 'Force Close'. Kann vielleicht jemand mal meinen code anschauen?



    Das Verzeichnis /sdcard sollte vorhanden sein, da ich der virtual device gesagt hab' er soll 1000MB sdcard simulieren. Beim Aufstarten kommt auch immer die Benachrichtigung, dass die sdcard vorbereitet wird.

    So, ich stell' nun mal die ultimative Anfängerfrage. Hoffentlich nerv' ich nicht damit.


    Ich hab' also nun die ersten Babyschritte gemacht, Hello World in allen Varianten.


    Ich versteh' wie das läuft mit TextView erstellen und Text zuweisen, ebenso macht's mir nun Sinn, das Layout in die main.xml und die dazugehörigen Strings in die Strings.xml zu verpacken.


    Aber nun wie weiter? Ich versuchte gestern mal mit 'include java.io.File' einige neuen Zeilen in das bestehende HelloWorld hineinzupacken, aber handelte mir erstmal Fehlermeldungen ein. Die meisten Tutorials die ich gefunden haben gehen danach einen gewaltigen Schritt weiter, z.B zur Menuorganisation oder so, und da fehlt mir noch so ziemlich jegliches Verständniss.


    Wei wär's mit ein Paar kleinen Erwiterungen zum mittlerweile bekannten Hello World? z.B. wie kann ich den auszugebenden String (R.string.hello oder auch anders)vom Benutzer eingeben lassen? Oder wie hol' ich den String von einer Datei, resp. wie speichere ich den String in einer Datei? Oder vielleicht ein Paar Beispiele mit anderen UI Bausteinen als TextView.


    Gibt's irgendwo sowas?

    Ja, klar. Ich nehm' das sozusagen als Projekt um mich in die Androidprogrammierung einzuarbeiten. Aber ich denke, wenn jemand anderes sich auch damit beschäftigt kann das nicht schaden. Ist mein post dafür an der falschen Stelle?


    Meine Kenntnisse sind halt zur Zeit äusserst mager. Heute früh war ich noch auf dem 'hello world' Stand, jetzt gerade versuch' ich aus java.io.File schlau zu werden. Da gibt's ja diese schönen 'isFile', 'isDirectory' und vor allem 'listFiles' Methoden.

    Hab's mir zwar eigentlich als eigenes Fernziel gesteckt sowas zu schreiben, aber es kann ja nicht schaden die Idee auch hier rein zu posten. Also:


    Ich hab' einen Ordner voller .txt files auf meiner SD-Karte. Was ich haben will, ist eine simple Suchfunktion, welche diese Dateien (Inhalt, nicht bloss Dateinamen) nach einem string durchsucht, und dann die Liste der Files anzeigt, in denen mindestens ein Treffer gefunden wurde.


    Nützliche Funktionen wären z.B. das Wählen des Verzeichnisses in dem gesucht wird, oder das Öffnen der gefundenen Dateien im relevanten editor/browser etc.


    Evtl. lässt sich das ganze dann später für andere Dateitypen erweitern (besonders für .html sollte das eigentlich recht einfach sein)


    Na? Ideen?

    Hoi zäme!


    Es grüsst euch aus der Schweiz, der Rapax.


    Hab' seit einiger Zeit ein G1, US-Import, da unsere dämlichen Telco Anbieter immer noch nicht kapiert haben, dass Android die Zukunft ist.


    Zur Zeit läuft das Cyanogen Mod 4.2.9.1 drauf (ändert öfter mal).


    Meine Motivation mit dem Android Programmieren anzufangen ist der Wunsch ein Volltext-Suchprogramm zu schreiben, und zwar eins welches lokal gespeicherte .txt files (später evtl. auch andere Formate) nach einem vom Benutzer angegebenen Begriff durchforstet und dann die filenames der Treffer zurückgibt. Tönt einfach, aber oh Wunder...sowas gibt's scheinbar noch nicht.


    Das wär' jedenfalls das Fernziel, und es scheint noch ganz schön weit weg. Ich hab' nun mal Eclipse mit den nötigen Erweiterungen zum Laufen gekriegt, und die diversen 'hello world' progrämmchen laufen im Emulator schon ganz gut. Aber dass ist's dann auch schon mit meiner Erfahrung.


    Ich denke, als erstes schau ich mal wie ich ganz simple eine Dateiliste eines Verzeichnisses in meinem Programm ausgeben kann, dann sehen wir weiter.