2016-06-01 16 views
-1

Ich bin neu in Android-Programmierung und begann mit einer einfachen Zeichnung App. Ich habe nach langem Surfen etwas Code gefunden und zusammengestellt, aber der Code scheint nicht zu funktionieren. Die App öffnet sich mit einem weißen Bildschirm, tut aber nichts beim Berühren und Ziehen. Keine Linien oder irgendetwas zu sehen. Nur der weiße Bildschirm.Android Zeichnung App Absturz

Hier ist der Code.

Die Hauptdatei ist MainActivity und daher habe ich die öffentliche Klasse mit einem leeren Konstruktor hinzugefügt. Wenn ich versuche, den gesamten Zeichencode in der MainActivity-Klasse hinzuzufügen, die von View ausgeht, stürzt die App ab, startet nicht einmal mit der Fehlermeldung "Kein leerer Konstruktor gefunden". Also habe ich auf diese Weise codiert. Ich bin mir nicht sicher, ob das richtig ist.

Kann mir bitte jemand sagen, wo ich falsch liege?

Vielen Dank im Voraus Esash

+0

Nun, diese MyView-Klasse ist großartig und alles andere als wie erwartet man von der MainActivity? Du sagst, du hast es nirgends drin eingeschlossen. Es existiert nur im selben Universum. Vielleicht sogar auf dem gleichen PC. Aber das macht es nicht funktioniert :) – Vucko

+0

Bitte lesen Sie [Erstellen von benutzerdefinierten Ansichten] (https://developer.android.com/training/custom-views/index.html) –

Antwort

0

die App abstürzt, startet nicht einmal, wenn ein Fehler „keine leeren Konstruktor gefunden“ zu sagen.

Ich denke, dass ein leerer Konstruktor für die View-Klasse will.

public MyView() { 
    // TODO: Maybe place something here? 
} 

public MyView(Context context, AttributeSet attrs) { 
    super(context, attrs); 
    setFocusable(true); 
    setFocusableInTouchMode(true); 
    setupPaint(); 
} 

Aber das eigentliche Problem liegt wahrscheinlich, dass Sie keine onCreate für Ihre Aktivität haben. Und das braucht den leeren Konstruktor sowieso nicht.

public class MainActivity extends Activity { 

    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.YourLayoutWithMyView); // TODO: Put your layout here 
    } 

} 
0

Vergewissern Sie sich in Sie sind Ihre MyView in Layout-Datei Ihrer App, die gerendert wird.
Nachdem eine Instanz von MyView in Ihrer Layoutdatei enthalten ist, können Sie auf Ihrem Testgerät Settings > Developer options aufrufen und Show layout bounds und Show touches für mehr Debugging mit dieser bestimmten App aktivieren.

+0

Vielen Dank, es hat funktioniert. :) – Esash