Drawer App erstellen

A

AndrejEdd

Neues Mitglied
0
Hallo zusammen ich befasse mich erst seit kurzem mit dem Entwicklen der Android Apps.

Ich bin mit Java selber ziemlich vertraut und arbeite auch als Informatiker in der Javaabteilung seid über 2.5 Jahre. Anhand kenne ich mich mit dem Framework Spring gut aus. Ich kenne mich einfach noch nicht mit dem Plugin Android SDK und den Librarys gut aus.

Ich habe schon einiges programmiert und einiges hinbekommen. Nun möchte ich eine simple App erstellen. Die App soll eine Fläche haben worauf man einfach zeichnen kann. Ganz einfach vorübergehend ohne Farbauswahl, Resetfunktion,... sondern mann kann einfach zeichnen per Touch.

Ich ging nach dieser Anleitung vor:
Make a basic single touch drawing app for Android - Creative Punch

Nun, welches Layout brauche ich beim erstellen des Projekts? Das Framelayout habe ich nicht zur Auswahl. habe einfach die gewöhnlichen.

Momentan sieht so mein XML aus:
Code:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent"
android:layout_height="match_parent" android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
android:paddingBottom="@dimen/activity_vertical_margin" tools:context="com.example.app.FullscreenActivity"
android:background="#ffffff">

<TextView android:text="@string/hello_world" android:layout_width="wrap_content"
    android:layout_height="wrap_content" />

</RelativeLayout>
Wo ist bei dieser Anleitung die onCreate() Methode? Braucht es die nicht um die App zu starten?

Momentan kriege ich auf dem Emulator diese Ausgabe "Unforunately, MainDrawingView has stopped."

Und mir wirft es diese Exception:
Code:
java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{eddgmbh.maindrawingview/eddgmbh.maindrawingview.MainDrawingView}: java.lang.InstantiationException: class eddgmbh.maindrawingview.MainDrawingView has no zero argument constructor
            at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2209)
            at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2360)
            at android.app.ActivityThread.access$800(ActivityThread.java:144)
            at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1278)
            at android.os.Handler.dispatchMessage(Handler.java:102)
            at android.os.Looper.loop(Looper.java:135)
            at android.app.ActivityThread.main(ActivityThread.java:5221)
            at java.lang.reflect.Method.invoke(Native Method)
            at java.lang.reflect.Method.invoke(Method.java:372)
            at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:899)
            at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:694)
     Caused by: java.lang.InstantiationException: class eddgmbh.maindrawingview.MainDrawingView has no zero argument constructor
            at java.lang.Class.newInstance(Class.java:1563)
            at android.app.Instrumentation.newActivity(Instrumentation.java:1065)
            at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2199)
            at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2360)
            at android.app.ActivityThread.access$800(ActivityThread.java:144)
            at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1278)
            at android.os.Handler.dispatchMessage(Handler.java:102)
            at android.os.Looper.loop(Looper.java:135)
            at android.app.ActivityThread.main(ActivityThread.java:5221)
            at java.lang.reflect.Method.invoke(Native Method)
            at java.lang.reflect.Method.invoke(Method.java:372)
            at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:899)
            at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:694)
     Caused by: java.lang.NoSuchMethodException: <init> []
            at java.lang.Class.getConstructor(Class.java:531)
            at java.lang.Class.getDeclaredConstructor(Class.java:510)
            at java.lang.Class.newInstance(Class.java:1561)
            at android.app.Instrumentation.newActivity(Instrumentation.java:1065)
            at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2199)
            at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2360)
            at android.app.ActivityThread.access$800(ActivityThread.java:144)
            at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1278)
            at android.os.Handler.dispatchMessage(Handler.java:102)
            at android.os.Looper.loop(Looper.java:135)
            at android.app.ActivityThread.main(ActivityThread.java:5221)
            at java.lang.reflect.Method.invoke(Native Method)
            at java.lang.reflect.Method.invoke(Method.java:372)
            at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:899)
            at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:694)
Soll ich im XML trotzdem FrameLayout hinsetzten obwohl ich das nirgends zur Verfügung habe oder sollteich das lassen was ich ausgewählt habe (RelativeLayout).

Sonst noch Tipps und Probleme die mich erwarten?
 
Hi,

das TextView in deinem Projekt kannst du ersetzen durch

Code:
<view
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        class="mein.projekt.MainDrawingView"
        android:id="@+id/single_touch_view"
        android:layout_gravity="left|top"
        android:background="#ffffff" />
wobei der dortige Eintrag class="com.example.app.MainDrawingView"
die View-Klasse ist.
Also nach dem Beispiel eben die Klasse MainDrawingView.

Natürlich brauchst du eine Activity. Nimm auch das Touch-Event mit in die Klasse rein :winki:.

LG
 
Zuletzt bearbeitet:

Ähnliche Themen

W
Antworten
2
Aufrufe
744
rene3006
R
5
Antworten
0
Aufrufe
1.150
586920
5
Muecke1982
Antworten
8
Aufrufe
1.034
Skyhigh
Skyhigh
Zurück
Oben Unten