Ich habe eine benutzerdefinierte Ansicht MyView
aufgeblasen von my_view.xml
(mit einer entsprechenden Java-Klasse MyView.java
).
Ich überschreibe MyView(Context context, AttributeSet attrs)
um Unteransichten mit Mitgliedern der Klasse zu verbinden.
Eine dieser Unteransichten ist eine Button
und ich möchte, dass meine Ansicht auf einen Klick auf die Schaltfläche wartet, bevor sie dieses Ereignis an einen Delegaten weitergibt. Wenn ich jedoch deklariere
this.myButton.setOnClickListener(this);
im Konstruktor MyView(Context context, AttributeSet attrs)
(wobei this
ist eine Instanz von MyView
) Ich erhalte eine NullPointerException
.
Wo ist ein geeigneter Ort in MyClass.java
anrufen this.myButton.setOnClickListener(this);
?
%%
Bearbeiten. Etwas Code:
public MyView(Context ctx, AttributeSet attrs)
{
super(context, attrs);
this.myButton = (Button) this.findViewById(R.id.my_button);
this.myButton.setOnClickListener(this); // Raises null pointer;'id' is correct.
}