Android: Was ist Los mit meinem custom Bildansicht inherritance?

Ich nur mit Android angefangen und dachte, es wäre einfach eine neue Klasse erstellen, ein Bild, das ich später bewegen und so weiter, nur das Spiel mit Android grundsätzlich. Gut, es scheint Ihr nicht so leicht wie erwartet. Ich bekomme eine NPE:

java.lang.NullPointerException: Attempt to invoke virtual method 'void android.widget.ImageView.setImageResource(int)' on a null object reference

xml-layout

<FrameLayout 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:background="#0099cc"
    tools:context=".Start">

    <!-- The primary full-screen view. This can be replaced with whatever view
         is needed to present your content, e.g. VideoView, SurfaceView,
         TextureView, etc. -->

    <!-- This FrameLayout insets its children based on system windows using
         android:fitsSystemWindows. -->

    <ImageView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/imageView"
        android:layout_gravity="center" />
</FrameLayout>

Haupttätigkeit

package com.andreiv.snake;

import com.andreiv.snake.util.Picture;
import com.andreiv.snake.util.SystemUiHider;

import android.annotation.TargetApi;
import android.app.Activity;
import android.os.Build;
import android.os.Bundle;
import android.os.Handler;
import android.view.MotionEvent;
import android.view.View;
import android.widget.ImageView;

public class Start extends Activity {

    ImageView img;
    Picture pic;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        img = (ImageView)findViewById(R.id.imageView);
        pic = new Picture(img.getContext());
        pic.drawPic();

        setContentView(R.layout.activity_start);

    }
}

Bild Klasse

package com.andreiv.snake.util;

import android.content.Context;
import android.util.AttributeSet;
import android.view.View;
import android.widget.ImageView;

import com.andreiv.snake.R;

/**
 * Created by andrei on 7/2/2014.
 */
public class Picture extends ImageView{

    public Picture(Context context) {
        super(context);
    }
    public Picture(Context context, AttributeSet attrs) {
        super(context, attrs);
    }
    public Picture(Context context, AttributeSet attrs, int defStyle) {
        super(context, attrs, defStyle);
    }

    public void drawPic() {
        setImageResource(R.drawable.pic);
    }
}
  • Was ist null? --
  • Nur um sicher zu gehen: man muss in der Tat eine Ressource, die in Ihrem drawables Verzeichnis namens "pic"?
  • Rufen Sie setContent bevor Sie versuchen zu finden, anzeigen von id
  • Marco,sicher, ich habe die resource. Else R. drawable.pic wäre nicht brauchbar. MarsAtomic, du hast Recht, mein Fehler, ich werde versuchen, dass.
InformationsquelleAutor | 2014-07-01
Schreibe einen Kommentar