Beiträge von Gutelo

    Das ist ja genau mein Problem. Es scheint nur vergrossernd zu skalieren und nicht verkleinernd. Also muss man die Bilder genau in der minimalen Auflösung die man haben möchte erstellen, bzw wenn Text enthalten ist genau in der Auflösung die man braucht.

    Hallo,


    ich versuche mit 9-patch images einen background fuer ein TextView zu erstellen. Mir ist das mit der Aufloesung von Bildern noch nicht ganz klar. Wie haengt die Aufloesung der in Android angezeigten Bilder mit der Aufloesung der Bilder in den Resources zusammen?


    Angenommen ich habe ein 9-patch Bild erstellt mit der Aufloesung von 200x50 pixeln. Rechnet Android das in dip Einheiten um? Woher weiss ich wie gross ich die Bilder in den Resources machen muss?


    Gutelo

    Moment, es scheint etwas klick zu machen.


    Ich muss dem SetPositiveButton anstatt ClickLoad den ODListener uebergeben, richtig? Und dann den Code aus ClickLoad in ODListener packen...


    Edit: hmm, setPositiveButton nimmt ODListener nicht


    Edit2: Ich kann setPositiveButton ganz wegnehmen, dann erhalte ich den fileName in ODListener, nur wie kann ich den Button dann umbenennen? Muss ich wohl im resource machen

    Also irgendwie kapier ich das immer noch nicht.


    Das Verlagern des Codes bringt nichts. Er muss doch auch so schonmal etwas im TextView anzeigen. Ich habe den Inhalt vom OnClickListener in ODListener verlegt, keinerlei aktion ...


    Oder meinst du inklusive dem gesamten


    public void onClick(DialogInterface dialog, int which)
    { ...}


    ???

    Das habe ich natuerlich in endsWith umgeaendert :)


    Nein es ist mir nicht klar warum ich mit setPositiveButton den Interface code "totlege".
    OpenDialogListener und OnClickListener sollten doch unterschiedliche Eventhandler sein oder nicht? Oder meinst du dass der Button click wieder ein deselect des items bewirkt? In dem Fall muesste aber der Filename schon im TextView gelandet sein als ich das item ausgewaehlt habe oder nicht?


    aus dem OpenDialogListener will ich den Filenamen bekommen, mit dem OnClickListener will ich den Filenamen verarbeiten ...

    Hier ist die ganze Sequenz fuer OpenFileDialog:



    Wieso formatiert der das hier immer so schrecklich?

    Der OpenDialogListener wird anscheinend garnicht ausgefuehrt. Im R.id.tv_msg steht zunaechst "Medium Text". Dieser Eintrag wird beim click auf das File im Openfiledialog nicht geaendert. Der OpendialogListener sieht jetzt so aus:


    Java
    OpenDialogListener ODListener = new OpenDialogListener()
    {
    public void OnSelectedFile(String fileName)
    {
    myFile = fileName;
    TextView Msg = (TextView) RV.findViewById(R.id.tv_msg);
    Msg.setText(fileName);
    }
    };
    myFileDialog.setOpenDialogListener(ODListener);

    Hallo,


    ich moechte ueber usb mit einem Arduino Micro kommunizieren. Hierzu habe ich folgende Komponente gefunden:
    https://code.google.com/p/usb-serial-for-android/


    Der Beispiel Code,




    kompiliert zwar, aber er findet den richtigen Treiber nicht. Verwendet sonst noch jemand dieses Paket und hat ein paar Tipps? Das Arduino Micro Programm habe ich so kompiliert, dass er kein device fuer das Keyboard erzeugt.


    Gutelo

    Ich bin zu bload fuer Android ...


    Das macht es immer noch nicht:


    Java
    OpenDialogListener ODListener = new OpenDialogListener()
            		{
           		    	public void OnSelectedFile(String fileName)
           		    	{
           		    		myFile = fileName;
           		    	}
           			};
            		
           			myFileDialog.setOpenDialogListener(ODListener);

    Danke and.dev


    ich bin blind. Habe den Code mehrere Stunden durchgeschaut aber


    public interface OpenDialogListener {
    public void OnSelectedFile(String fileName);
    }


    hab ich nicht gesehen. Wollte schon ein Feld Filename einfuegen...


    Ich habe es jetzt so umgesetzt:


    Java
    OpenDialogListener ODListener = new OpenDialogListener(){
      	public void OnSelectedFile(String fileName)
      	{
      		String myFile = fileName;
      	}
      	};


    Leider ist der String myFile ausserhalb dieser Anweisung nicht greifbar?!


    Weisst du zufaellig auch warum setFilter(".txt") nicht funktioniert? Was fuer eine Formatierung des Strings erwartet diese Methode? Nur "txt" filtert auch alles weg.


    Gutelo

    Wunderbar die Aenderung im Manifest, bewirkt genau das richtige *freu*.


    Kann man auch irgendwie bewirken, dass beim Wechsel der Fragments der Inhalt der nicht mehr sichtbaren Fragments erhalten bleibt, so dass man zurueckwechseln kann? Wahrschneinlich nicht weil er beim Wechsel ja neue Objekte erzeugen muss, richtig?


    Gutelo

    Aus einem Vergleich mit AlertDialog Beispielen habe ich inzwischen herausgefunden, dass es:


    OpenFileDialog myFileDialog = new OpenFileDialog(getActivity());


    heissen muss! Dann zeigt er den Dialog auch an. Warum es einen Typ Context erwartet, aber mit getActivity funktioniert ist mir schleierhaft.


    Edit: Oh, ich kann den Dialog anzeigen lassen, ich kann Datei auswaehlen, ich kann den Ok button event abfangen, ABER : ich komme nicht an den Pfad :(

    Inzwischen habe ich herausgefunden, dass DialogInterface.OnClickListener()


    ein Interface ist. Deshalb nehme ich an, dass


    public void onClick(DialogInterface dialog, int which);


    eine Methode aus diesem Interface ist, die nun implementiert wird. Aber dass man das einfach so hinter den Parameter schreibt ist mir immer noch nicht klar.

    Hallo,


    ich wuerde gerne wissen was das fuer eine merkwuerdige Konstruktion ist, die haeufig bei eventhandlern auftritt.


    Java
    alertDialog.setPositiveButton("OK", new DialogInterface.OnClickListener() {
        				 public void onClick(DialogInterface dialog, int which) {
          				 Toast.makeText(getActivity().getApplicationContext(), "You clicked on OK", Toast.LENGTH_SHORT).show();
          				 }
      				 });


    alertDialog ist das Obkjekt. setPositiveButton ist eine Methode von alertDialog. Dann folgen die beiden Parameter "Ok" und new DialogInterface.OnClickListener(). Was ich nicht verstehe ist, dass an den zweiten Parameter eine Anweisung angehaengt wird, die ebenfalls eine Methode definiert.


    Wieso kann man den Anweisungsblock einfach dort einfuegen? Wie haengt der Anweisungsblock zusammen mit dem Rest? Gibt es vielleicht einen aequivalenten Ausdruck fuer das Konstrukt, so dass ich verstehe was es eigentlich macht?


    Gutelo

    Aber wie oder welches View muss ich verwenden?


    ich habe auch schon ein neues View mittels View myView = new View(context) erstellt. Dann schmiert das Programm ebenfalls ab.


    Fehlermeldung mit RV als view:


    09-17 18:36:13.805: E/AndroidRuntime(23803): FATAL EXCEPTION: main
    09-17 18:36:13.805: E/AndroidRuntime(23803): Process: info.androidhive.slidingmenu, PID: 23803
    09-17 18:36:13.805: E/AndroidRuntime(23803): java.lang.IllegalStateException: The specified child already has a parent. You must call removeView() on the child's parent first.
    09-17 18:36:13.805: E/AndroidRuntime(23803): at android.view.ViewGroup.addViewInner(ViewGroup.java:3562)
    09-17 18:36:13.805: E/AndroidRuntime(23803): at android.view.ViewGroup.addView(ViewGroup.java:3415)
    09-17 18:36:13.805: E/AndroidRuntime(23803): at android.view.ViewGroup.addView(ViewGroup.java:3391)
    09-17 18:36:13.805: E/AndroidRuntime(23803): at com.android.internal.app.AlertController.setupView(AlertController.java:413)
    09-17 18:36:13.805: E/AndroidRuntime(23803): at com.android.internal.app.AlertController.installContent(AlertController.java:241)
    09-17 18:36:13.805: E/AndroidRuntime(23803): at android.app.AlertDialog.onCreate(AlertDialog.java:337)
    09-17 18:36:13.805: E/AndroidRuntime(23803): at android.app.Dialog.dispatchOnCreate(Dialog.java:361)
    09-17 18:36:13.805: E/AndroidRuntime(23803): at android.app.Dialog.show(Dialog.java:262)
    09-17 18:36:13.805: E/AndroidRuntime(23803): at android.app.AlertDialog$Builder.show(AlertDialog.java:951)
    09-17 18:36:13.805: E/AndroidRuntime(23803): at info.androidhive.slidingmenu.openfiledialog.OpenFileDialog.show(OpenFileDialog.java:115)
    09-17 18:36:13.805: E/AndroidRuntime(23803): at info.androidhive.slidingmenu.GraphFragment$1.onClick(GraphFragment.java:70)
    09-17 18:36:13.805: E/AndroidRuntime(23803): at android.view.View.performClick(View.java:4438)
    09-17 18:36:13.805: E/AndroidRuntime(23803): at android.view.View$PerformClick.run(View.java:18422)
    09-17 18:36:13.805: E/AndroidRuntime(23803): at android.os.Handler.handleCallback(Handler.java:733)
    09-17 18:36:13.805: E/AndroidRuntime(23803): at android.os.Handler.dispatchMessage(Handler.java:95)
    09-17 18:36:13.805: E/AndroidRuntime(23803): at android.os.Looper.loop(Looper.java:136)
    09-17 18:36:13.805: E/AndroidRuntime(23803): at android.app.ActivityThread.main(ActivityThread.java:5001)
    09-17 18:36:13.805: E/AndroidRuntime(23803): at java.lang.reflect.Method.invokeNative(Native Method)
    09-17 18:36:13.805: E/AndroidRuntime(23803): at java.lang.reflect.Method.invoke(Method.java:515)
    09-17 18:36:13.805: E/AndroidRuntime(23803): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:785)
    09-17 18:36:13.805: E/AndroidRuntime(23803): at dalvik.system.NativeStart.main(Native Method)

    Hallo,


    ich brauechte etwas Hilfe um diesen OpenFileDialog zum Laufen zu bringen: https://github.com/Sash0k/Andr…aster/OpenFileDialog.java


    Ich habe in meinem Projekt ein package erstellt und die Datei dem Package hinzugefuegt. Danach habe ich versucht einen OpenFileDialog zu erstellen. Leider gibt es dazu kein Tutorial wie ich diese Klasse einsetzen muss. Im moment mache ich folgendes in meinem Fragment:


    Java
    OpenFileDialog myFileDialog = new OpenFileDialog(getActivity().getApplicationContext());
    myFileDialog.setFilter("*.BDF");
    myFileDialog.setTitle("Oeffne Datei");
    myFileDialog.setView(RV);   // RV ist view des Fragments
    myFileDialog.create();
    myFileDialog.show();


    1.) ich bin mir nicht sicher was create() macht und ob man das selber ausfuehren muss
    2.) ich weiss dass ein onClickListener implementiert werden muss, aber nicht wie
    3.) das Program stuerzt bei myFileDialog.show() ab. Anscheinend fehlt etwas bei der initialisierung, oder irgendwas ist falsch


    Wenn jemand ein Minimalbeispiel hat oder bezueglich dieser Klasse im Internet kennt waere ich dankbar


    Gutelo

    Hallo Marco,


    Danke fuer die Antworten. Bezueglich Punkt [4] habe ich noch Fragen:


    1) Bei deiner Methode 1: Muss das zwingend in das OnCreate des Main-activity oder geht auch das OnCreateView des Fragments? Muss ich dort alles was gemacht wird (d.h. in meinem Fall Einlesen der Daten und Plotten der Daten) einmal in dem if-Zweig und einmal in dem else-Zweig packen? Anders gesagt, zweigt das auf in das was ohne Drehung, und das was nach einer Drehung gemacht wird?


    2) Bei der Methode 2: Hierbei verstehe ich nicht ganz welche UI gemeint ist. Ich habe eine Main_Activity und drei Fragments. Ich nehme an dass die Main_activity eine UI hat, die mein Sliding Menue enthaelt. Haben die Fragments jeweils eigene UIs? Woher bekomme ich den namen der UI den ich hier eintragen muss?:
    <activity android:configChanges="screenSize|orientation"
    android:name="…


    Gutelo

    Hallo,


    ich habe Fragen bezueglich objektorientierter Programmierung und ob ich es im Prinzip richtig gemacht habe oder was man anders machen sollte.


    Ausgangspunkt: ich habe ein sliding menu tutorial als Ausgangspunkt. Dieses hat eine main_activity und drei fragments. Hier geht es um eines der Fragments (in Graph_Fragment.java). Graph_Fragment enhaelt einen Button und eine Komponente XYPlot androidplot


    Nun habe ich eine weitere Klasse (myClass) definiert die folgendes macht: Sie laedt ein Textfile, parst dieses Textfile und schreibt die herausgefilterten numerischen Werte in eine Referenzklasse (myData, aehnlich einem record). Anschliessend enthaelt myData die Werte fuer mehrere XY-Kurven.


    MyClass ist folgendermassen aufgebaut:



    Meine Fragen:


    1) ist es in Ordnung myPlot, myView und myContext so ueber den Konstruktor von dem Fragment in die Klasse myClass zu bringen?


    2) die private Funktionen zum parsen scheinen mir OO-maessig okay zu sein. Sie opererieren ja nur innerhalb der Klasse auf myData, das zuvor eingeladen wurde. Ein schlechteres Gefuehl habe ich bei PlotMotorData(int NCurve) welches die n-te Kurve aus myData in myPlot zeichnet. Ist es okay auch diese Plotoperation so in der Klasse zu haben, dass sie vom Fragment aus z.B. via myClassObject.PlotMotorData(2) aufgerufen wird? Dies ist ja irgendwie objektuebergreifend.


    3) Viele der Parse Methoden enthalten Zugriffe auf das File mittels RandomAccessFile. Theoretisch muesste ich doch bei diesen Methoden ein "throws ExceptionXYZ" hinter der Methoden-deklaration stellen, oder nicht? So wie ich das verstanden habe muessen Methoden in denen exceptions auftreten koennen diese auch weiterreichen.


    Vielen Dank


    Gutelo


    Edit: eine weitere Frage. Ist es normal, dass das Fragment Objekt komplett neu geladen wird wenn der screen seine Orientierung von horizontal nach vertikal und umgekehrt aendert?

    Das Programm ist schon fertig unter Lazarus. Terminal-Programm das über serielle Schnittstelle einen Arduino Mikroprozessor steuert. Dieser nimmt auf einem analogen input channel Spannungswerte auf die über einem Widerstand abfallen wenn ein Motor fährt. Der Strom ist proportional zur Spannung. Die strom-zeit Kurven werden geplottet. Abhängig vom Verlauf werden dann bestimmte Werte ins Eeprom des arduino gespeichert um z.b. im Anschlag den Motor abzuschalten. Das lazarus Programm war schnell fertig, aber das ganze auf Android umzusetzen ist schwer. Immerhin kann ich jetzt schon die datenfiles einlesen lassen. Er parst die strom-zeit Daten und er zeigt die Kurven im androidplot an. Nun hänge ich am file open Dialog. Danach kommt die Kommunikation über USB2Serial. Für letzteres habe ich eine Komponente gefunden.


    Jetzt weist du was ich mache :)