Hallo ive erstellt eine benutzerdefinierte Ansicht, die relativeLayout erweitert. Und ich möchte es anpassbar machen.NullPointerException, wenn ich meine benutzerdefinierte Ansicht verwende
public class Niveauview extends RelativeLayout {
public TextView musiqueView = new TextView(getContext()), artisteView = new TextView(getContext());
public ImageView coverView = new ImageView(getContext()), carapaceView = new ImageView(getContext());
public Niveauview(Context context){
super(context);
}
public void init(int cover, int musique,int artiste){
coverView = (ImageView)findViewById(R.id.cover);
coverView.setImageResource(cover);
musiqueView = (TextView)findViewById(R.id.musique);
musiqueView.setText(musique);
artisteView = (TextView)findViewById(R.id.artiste);
artisteView.setText(artiste);
carapaceView = (ImageView) findViewById(R.id.carapace);
carapaceView.setImageResource(R.drawable.carapacevide);
}}
Theres ist meine Haupttätigkeit
public class MainActivity extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
initNiveauView();
}
private void initNiveauView(){
Niveauview luv_grow_view = new Niveauview(getApplicationContext());
luv_grow_view = (Niveauview)findViewById(R.id.luv_growup_view);
luv_grow_view.init(R.drawable.luv_groweup,R.string.GrowUp,R.string.LilUziVert);
}}
und meine XML-Dateien
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/activity_main"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical"
tools:context="fr.freshkamekentrainement.skrt.MainActivity">
<ImageView
android:contentDescription="@string/header_content_description"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:src="@drawable/header"
android:id="@+id/header"
android:scaleType="fitStart"
/>
<fr.freshkamekentrainement.skrt.view.NiveauView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:id="@+id/luv_growup_view"/>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/colorBackground"
android:layout_margin="@dimen/niveau_view_elevation">
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/cover"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/musique"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/artiste"/>
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/carapace"/>
es wird eine Nullpointer, aber ich weiß nicht, warum ich Wert auf luv_grow_view aber sagen, dass ist ein Null-Objekt-Referenz:/
Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'void fr.freshkamekentrainement.skrt.view.Niveauview.init(int, int, int)' on a null object reference
at fr.freshkamekentrainement.skrt.MainActivity.initNiveauView(MainActivity.java:24)
at fr.freshkamekentrainement.skrt.MainActivity.onCreate(MainActivity.java:17)
Erste 'Niveauview luv_grow_view = new Niveauview (getApplicationContext()) aufrufen,' dann in der nächsten Zeile 'luv_grow_view = (Ebeneview) findViewById (R.id.luv_growup_view); ' – GurV
Sieht aus, als ob Sie in Ihrer Implementierung einige Dinge falsch machen, dieses Tutorial beschreibt das Erstellen von zusammengesetzten Ansichten ziemlich gut: https://code.tutsplus.com/tutorials/ Erstellen-Compound-Ansichten-auf-Android - cms-22889 – Egor