如何解决如何正确扩展ImageButton?
| 我想扩展ImageButton类的功能,在一个新类中选择调用\“ DialButton \”。首先,我简化了ImageButton的扩展,并没有添加任何新内容。在我看来,这应该与普通的ImageButton类相同。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
}
}
我在XML中插入了DialButton(不必担心文件的其余部分,它无关紧要)
<?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\"/>
并在我的活动中使用XML:
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);
}
}
一切都编译并安装在模拟器中,但是当应用程序启动时,它对我强制关闭。如果我将XML组件从DialButton更改为ImageButton,则一切正常。为什么是这样? ImageButton类和我的DialButton类之间有什么区别,导致DialButton组件使应用程序崩溃?
解决方法
在布局文件中,您必须为自定义窗口小部件提供一个“完全合格的”名称,如下所示...
<com.mycompany.myapp.DialButton
android:id=\"@+id/button1\"
android:background=\"@drawable/dialpad\"
android:layout_weight=\"1\"/>
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。