Wie kann ich eine View-Klasse in einer Activity aufrufen?

  • Hallo Leute


    Ich bins schon wieder^^, diesmal mit der Frage wie ich meine View Klasse in meiner Activity aufrufen kann. Ich habe eine Activity die beim drücken des Knopfes: Neues Feld aufgerufen wird, diese Activity wird dann geöffnet und beinhaltet das Layout: Feldlayout. Nun hab ich eine View-kLasse: ViewFeld die in der FeldLayout-Activity geöffnet werden soll, um benutzt zu werden.


    Kann mir jemand sagen wie ich das machen kann oder mir einen Tipp geben was ich dafür benötige?


    Feldlayout.class



    Feldlayout.xml


    Java
    <?xml version="1.0" encoding="utf-8"?><RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"	android:layout_width="match_parent"	android:layout_height="match_parent"	android:background="@color/farbe"	android:orientation="vertical" >	  <ImageView  	android:id="@+id/view2"  	android:layout_width="match_parent"  	android:layout_height="match_parent"  	android:layout_marginBottom="70dp"  	android:layout_marginLeft="70dp"  	android:layout_marginRight="70dp"  	android:layout_marginTop="160dp"  	android:background="@drawable/whiterectangle" /> 	<ImageView     	android:id="@+id/view1"     	android:layout_width="match_parent"     	android:layout_height="match_parent"     	android:layout_marginBottom="74dp"     	android:layout_marginLeft="74dp"     	android:layout_marginRight="74dp"     	android:layout_marginTop="164dp"     	android:background="@drawable/volleyballfeld" /> 	<ImageView     	android:id="@+id/view3meterlinie"     	android:layout_width="match_parent"     	android:layout_height="4dp"     	android:layout_alignTop="@+id/view1"     	android:layout_marginLeft="70dp"     	android:layout_marginRight="70dp"     	android:layout_marginTop="100dp"     	android:background="@drawable/dreimeterlinie" /> 	<ImageView     	android:id="@+id/netz"     	android:layout_width="match_parent"     	android:layout_height="4dp"     	android:layout_alignTop="@+id/view1"     	android:layout_marginLeft="20dp"     	android:layout_marginRight="20dp"     	android:layout_marginTop="310dp"     	android:background="@drawable/netz" /> 	 	<ImageView     	android:id="@+id/view3meterliniedef"     	android:layout_width="match_parent"     	android:layout_height="4dp"     	android:layout_alignTop="@+id/view1"     	android:layout_marginLeft="70dp"     	android:layout_marginRight="70dp"     	android:layout_marginTop="520dp"     	android:background="@drawable/dreimeterlinie" /> 	 	<Button     	android:id="@+id/button8"     	style="@style/HomeText"     	android:layout_width="140dp"     	android:layout_height="85dp"     	android:layout_alignParentTop="true"     	android:layout_alignRight="@+id/view1"     	android:layout_marginTop="1dp"     	android:background="@drawable/bnt_black"     	android:text="Speichern" /> 	 	<Button     	android:id="@+id/button7"     	style="@style/HomeText"     	android:layout_width="140dp"     	android:layout_height="85dp"     	android:layout_alignLeft="@+id/view2"     	android:layout_alignParentTop="true"     	android:layout_marginTop="1dp"     	android:background="@drawable/bnt_black"     	android:onClick="home"     	android:text="Zurück" /> 	<Button     	android:id="@+id/button9"     	style="@style/HomeText"     	android:layout_width="140dp"     	android:layout_height="85dp"     	android:layout_alignTop="@+id/button7"     	android:layout_marginLeft="35dp"     	android:layout_toRightOf="@+id/button7"     	android:background="@drawable/bnt_black"     	android:text="Linien Anzeigen" /> 	<Button     	android:id="@+id/Statistik"     	style="@style/HomeText"     	android:layout_width="140dp"     	android:layout_height="85dp"     	android:layout_alignBaseline="@+id/button8"     	android:layout_alignBottom="@+id/button8"     	android:layout_marginRight="31dp"     	android:layout_toLeftOf="@+id/button8"     	android:background="@drawable/bnt_black"     	android:text="Statistik" />	</RelativeLayout>


    ViewFeld.class


    Java
    package com.example.volleyballapp;import android.content.Context;import android.graphics.Canvas;import android.graphics.Color;import android.graphics.Paint;import android.graphics.Path;import android.util.AttributeSet;import android.view.MotionEvent;import android.view.View;public class ViewFeld extends View{	 private Paint paint = new Paint();	  private Path path = new Path();	  int count = 1;		public ViewFeld(Context context, AttributeSet attrs) {		super(context, attrs);		// TODO Auto-generated constructor stub		paint.setAntiAlias(true);		paint.setStrokeWidth(6f);       	//Breite des Strichs		paint.setColor(Color.BLACK);    	//Farbe des Strichs 		paint.setStyle(Paint.Style.STROKE);		paint.setStrokeJoin(Paint.Join.ROUND);			  }	protected void onDraw(Canvas canvas) {				if ((count%2 != 0)){		canvas.drawPath(path, paint);}	  }	  @Override	  public boolean onTouchEvent(MotionEvent event) {		float eventX = event.getX();		float eventY = event.getY();				switch (event.getAction()) {		case MotionEvent.ACTION_DOWN:	  				count++;	    	if(count%2 != 1){			path.moveTo(eventX, eventY);	  	return true;	    	}	    	if(count%2 != 0){	    	path.lineTo(eventX, eventY);	    	break;	    	}		case MotionEvent.ACTION_MOVE:	 		  	break;		case MotionEvent.ACTION_UP:	  	// nothing to do	  	break;		default:	  	return false;		}		// Schedules a repaint.		invalidate();		return true;	  }		}


  • Binde sie doch in das Layout der Activity ein, wie jede andere View auch…


    HTML
    <com.example.volleyballapp />

    Je mehr Käse, desto mehr Löcher.
    Je mehr Löcher, desto weniger Käse.
    Daraus folgt: je mehr Käse, desto weniger Käse.


    »Dies ist ein Forum. Schreibt Eure Fragen in das Forum, nicht per PN!«

  • Du bist hier um was zu lernen, nicht um alles vorgekaut zu bekommen.
    Woher auch immer Du die Informationen zum Erstellen einer eigenen View bekommen hast, dort wirst Du sicherlich auch herausfinden, wie Du sie benutzt.


    (Nur für den Fall, dass es wirklich soooo schwer ist, in einer XML Datei das Wort 'ImageView' durch die Zeichenkette 'com.example.volleyballapp.ViewFeld' zu ersetzen – trotz Auto-Vervollständigung.)

    Je mehr Käse, desto mehr Löcher.
    Je mehr Löcher, desto weniger Käse.
    Daraus folgt: je mehr Käse, desto weniger Käse.


    »Dies ist ein Forum. Schreibt Eure Fragen in das Forum, nicht per PN!«

  • Ich hab nur das Problem gehbat, dass es mir die funktion der View, das Zeichnen nicht angezeigt, hatte, hab das so eingefügt!


    Java
    <com.example.volleyballapp.ViewFeld
      	android:id="@+id/linienView"
      	android:layout_width="match_parent"
      	android:layout_height="match_parent"
      	android:layout_alignTop="@+id/view2"
       	/>


    Die Lösung war, dass ich es am End meines Layouts einfügen musste, ich wollte nix vorgekaut bekommen, dachte nur, dass ich einen Fehler gemacht habe im Code ;))

  • Am Ende Deines Layouts?
    Du benutzt offenbar ein relatives Layout.
    Wenn Du dort 10 Views einander überlappen lässt ist es völlig verständlich, dass Du die untersten 9 unter Umständen nicht sehen kannst. ;)

    Je mehr Käse, desto mehr Löcher.
    Je mehr Löcher, desto weniger Käse.
    Daraus folgt: je mehr Käse, desto weniger Käse.


    »Dies ist ein Forum. Schreibt Eure Fragen in das Forum, nicht per PN!«

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!