Nullpointer Exception bei View init

  • Antworten:3
  • OffenNicht stickyBentwortet
  • Forum-Beiträge: 56

21.04.2018, 19:30:51 via Website

Hallo,
ich habe eine Klasse ZeichnenView:

    public class ZeichnenView extends View {

     public AnimationQuadrat(Context context) {
     super(context);
 }

und in der Main Activity:

   private ZeichnenView zw;

   @Override
    protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);  
    ZeichnenView zw = new Zeichnen(this) ;

    RelativeLayout.LayoutParams params = new 
    RelativeLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, 
    ViewGroup.LayoutParams.MATCH_PARENT);
    zw.setLayoutParams(params);
    RelativeLayout layout = (RelativeLayout) findViewById(R.id.layout1);
    zw.setBackgroundColor(Color.WHITE);
    layout.addView(aq);

}

So kann ich das ZeichnenView Object zw nicht benutzen, weil ich dann logischerweise eine Nullpointer Exception bekomme.

Wenn ich das ZeichnenView Object nicht in der onCreate() Methode erstelle bekomme ich eine java.lang.RuntimeException: Unable to instantiate activity Exception.

Wie kann ich das lösen, ich muss nämlich auf zw zugreifen können?
Schonmal danke im Vorraus.

— geändert am 21.04.2018, 21:24:51 durch Moderator

Diskutiere mit!
Beste Antwort
Pascal P.
  • Mod
  • Blogger
  • Forum-Beiträge: 10.171

22.04.2018, 10:32:56 via App

Bewegen im.eigenichen Sinn garnicht. Du musst dir die Parameter (Größe,Position,Etc.) merken, diese ggf. anpassen und in der onDraw immer ein neues Rechteck zeichnen. Wenn das zeichnen schnell genug passiert, dann sieht es so aus als Bewegt sich das Rechteck, du zeichnest es allerdings immer neu.

LG Pascal //It's not a bug, it's a feature. :) ;)

Hilfreich?
Diskutiere mit!
Pascal P.
  • Mod
  • Blogger
  • Forum-Beiträge: 10.171

21.04.2018, 21:24:40 via App

Wie sieht denn die. vollständige Exception aus?
Darin sthet denn auch die Code Zeile in der der Fehler ist.

LG Pascal //It's not a bug, it's a feature. :) ;)

Hilfreich?
Diskutiere mit!
  • Forum-Beiträge: 56

22.04.2018, 00:14:02 via Website

Danke, jetzt funktioniert es. Ich wollte eine kleine Animation machen und habe den timer im Konstruktor gestartet was anscheinend die Nullpointer Exception geworfen hat.
Eine Frage hätte ich noch: wie kann ich ein Rechteck bewegen(was ich in onDraw gezeichnet hab)? Bei mir zieht es sich immer zusammen un wird immer kleiner.

— geändert am 22.04.2018, 00:34:05

Hilfreich?
Diskutiere mit!
Beste Antwort
Pascal P.
  • Mod
  • Blogger
  • Forum-Beiträge: 10.171

22.04.2018, 10:32:56 via App

Bewegen im.eigenichen Sinn garnicht. Du musst dir die Parameter (Größe,Position,Etc.) merken, diese ggf. anpassen und in der onDraw immer ein neues Rechteck zeichnen. Wenn das zeichnen schnell genug passiert, dann sieht es so aus als Bewegt sich das Rechteck, du zeichnest es allerdings immer neu.

LG Pascal //It's not a bug, it's a feature. :) ;)

Hilfreich?
Diskutiere mit!

Empfohlene Artikel