So verlängern Sie die ImageButton-richtig?
Möchte ich erweitern die Funktionalität der ImageButton-Klasse, in eine neue Klasse, ich nenne "DialButton". Um zu beginnen, ich simpy erweitern ImageButton-Steuerelement, und fügte nichts neues. In meinem Kopf, diese sollte identisch sein mit dem normal-ImageButton-Klasse.
package com.com.com;
import android.content.Context;
import android.util.AttributeSet;
import android.widget.ImageButton;
public class DialButton extends ImageButton{
public DialButton(Context context) {
super(context);
//TODO Auto-generated constructor stub
}
public DialButton(Context context, AttributeSet attrs) {
super(context, attrs);
//TODO Auto-generated constructor stub
}
public DialButton(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
//TODO Auto-generated constructor stub
}
}
Füge ich einen DialButton in XML (keine Sorge um den rest der Datei, seine irrelevant)
<?xml version="1.0" encoding="utf-8"?>
<TableLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:stretchColumns="1">
<TableRow
android:layout_weight="1">
<DialButton
android:id="@+id/button1"
android:background="@drawable/dialpad"
android:layout_weight="1"/>
Und verwenden Sie die XML-Datei in meine Tätigkeit:
package com.com.com;
import android.app.Activity;
import android.os.Bundle;
public class Android3 extends Activity {
DialButton button1;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.maintable);
}
}
Alles kompiliert und installiert in den emulator aber wenn die app startet, es Kraft schließt auf mich. Wenn ich die XML-Komponente von einem DialButton auf ein ImageButton-Steuerelement, funktioniert alles einwandfrei. Warum ist das so? Was ist der Unterschied zwischen den ImageButton-Klasse und meine DialButton Klasse, die bewirkt, dass die DialButton Komponente zum Absturz der app?
Du musst angemeldet sein, um einen Kommentar abzugeben.
In Ihrer layout-Datei Sie haben, um eine 'voll-qualifizierten Namen für Ihre benutzerdefinierte widgets wie folgt...