K
KenM
Neues Mitglied
- 0
Hallo, ich bin totaler anfänger in der der programmiersprache und habe leider ein paar probleme.
ich würde gerne über die XML-Datei drawboard, ein canvas über ein view einbinden. Dies funktioniert auch gut so lange sich meine Klasse CanvasView sich ein einer eigenen Java Datei befindet jedoch schaffe ich es dann nicht variablen von meiner main Klasse DrawsettingsActivity in die ander Klasse zu übergeben. Daher habe ich CanvasView in DrawsettingsActivity eingebaut.
Jedoch stürzt die Anwendung immer wieder ab. Kann vlt die Zuweisung in der XML falsch sein?
Danke für jede Hilfe schon mal im Vorraus
XML - Drawboard:
<?xml version="1.0" encoding="UTF-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_height="match_parent"
android:layout_width="match_parent"
android:gravity="bottom"
androidrientation="vertical" >
<com.example.rekursions_project.DrawsettingsActivity.CanvasView
android:id="@+id/view1"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="1" />
<Button
android:id="@+id/backbutton"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="10"
androidnClick="ChangeToDrawsettings"
android:text="@string/BackToSettings" />
</LinearLayout>
und der Code - DrawsettingsActivity
package com.example.rekursions_project;
import android.os.Bundle;
import android.app.Activity;
import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.util.AttributeSet;
import android.view.Menu;
import android.view.View;
public class DrawsettingsActivity extends Activity {
//View view = (View) findViewById(R.id.view1);
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_drawsettings);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.drawsettings, menu);
return true;
}
public void ChangeToDrawsettings(View arg0){
setContentView(R.layout.activity_drawsettings);
}
public void Button1(View arg0){ setContentView(R.layout.drawboard);}
public void Button2(View arg0){ setContentView(R.layout.drawboard);}
public void Button3(View arg0){ setContentView(R.layout.drawboard);}
public void Button4(View arg0){ setContentView(R.layout.drawboard);}
public class CanvasView extends View{
public Paint myPaint;
public CanvasView(Context context, AttributeSet attrs) {
super(context, attrs);
}
@Override
protected void onDraw(Canvas canvas){
super.onDraw(canvas);
myPaint = new Paint();
myPaint.setColor(Color.GREEN);
myPaint.setStrokeWidth(5);
canvas.drawColor(Color.BLACK);
canvas.drawLine(0, 0, getWidth(), getHeight(), myPaint);
}
}
}
Der ursprüngliche Beitrag von 15:30 Uhr wurde um 15:32 Uhr ergänzt:
die Lücke bei <com.example.rekursions_project.DrawsettingsActivi ty.CanvasView ist ein copierfehler
ich würde gerne über die XML-Datei drawboard, ein canvas über ein view einbinden. Dies funktioniert auch gut so lange sich meine Klasse CanvasView sich ein einer eigenen Java Datei befindet jedoch schaffe ich es dann nicht variablen von meiner main Klasse DrawsettingsActivity in die ander Klasse zu übergeben. Daher habe ich CanvasView in DrawsettingsActivity eingebaut.
Jedoch stürzt die Anwendung immer wieder ab. Kann vlt die Zuweisung in der XML falsch sein?
Danke für jede Hilfe schon mal im Vorraus
XML - Drawboard:
<?xml version="1.0" encoding="UTF-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_height="match_parent"
android:layout_width="match_parent"
android:gravity="bottom"
androidrientation="vertical" >
<com.example.rekursions_project.DrawsettingsActivity.CanvasView
android:id="@+id/view1"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="1" />
<Button
android:id="@+id/backbutton"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="10"
androidnClick="ChangeToDrawsettings"
android:text="@string/BackToSettings" />
</LinearLayout>
und der Code - DrawsettingsActivity
package com.example.rekursions_project;
import android.os.Bundle;
import android.app.Activity;
import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.util.AttributeSet;
import android.view.Menu;
import android.view.View;
public class DrawsettingsActivity extends Activity {
//View view = (View) findViewById(R.id.view1);
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_drawsettings);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.drawsettings, menu);
return true;
}
public void ChangeToDrawsettings(View arg0){
setContentView(R.layout.activity_drawsettings);
}
public void Button1(View arg0){ setContentView(R.layout.drawboard);}
public void Button2(View arg0){ setContentView(R.layout.drawboard);}
public void Button3(View arg0){ setContentView(R.layout.drawboard);}
public void Button4(View arg0){ setContentView(R.layout.drawboard);}
public class CanvasView extends View{
public Paint myPaint;
public CanvasView(Context context, AttributeSet attrs) {
super(context, attrs);
}
@Override
protected void onDraw(Canvas canvas){
super.onDraw(canvas);
myPaint = new Paint();
myPaint.setColor(Color.GREEN);
myPaint.setStrokeWidth(5);
canvas.drawColor(Color.BLACK);
canvas.drawLine(0, 0, getWidth(), getHeight(), myPaint);
}
}
}
Der ursprüngliche Beitrag von 15:30 Uhr wurde um 15:32 Uhr ergänzt:
die Lücke bei <com.example.rekursions_project.DrawsettingsActivi ty.CanvasView ist ein copierfehler