gpt4 book ai didi

android - 找不到扩展 View 的类?

转载 作者:行者123 更新时间:2023-11-29 17:57:19 24 4
gpt4 key购买 nike

我正在将 Button View 扩展到 MyButton 以添加一些定制方法,即,

public class MyButton extends Button {

public SignUpButton(Context context, AttributeSet attrs) {
super(context, attrs);
}

// Bespoke methods etc.

}

然后在布局xml中

<com.package.mine.MyButton
android:id = "@+id/button"
android:layout_height="wrap_content"
android:layout_width="match_parent"
/>

这有效 - 太棒了!但是,当我尝试将 MyButton 类作为 static 内部类放入我的 Activity 中时,应用程序不断崩溃,即在我定义的 Activity 中 MyButton作为

public static class MyButton extends Button {

public SignUpButton(Context context, AttributeSet attrs) {
super(context, attrs);
}

// Bespoke methods etc.

}

我在 xml 布局中将其称为

<com.package.mine.MyActivity.MyButton
android:id = "@+id/button"
android:layout_height="wrap_content"
android:layout_width="match_parent"
/>

manifest文件中的package定义为package="com.package.mine",logcat报错为:

java.lang.ClassNotFoundException: Didn't find class "com.package.mine.MyActivity.MyButton" on path: DexPathList[[zip file "/data/app/com.package.mine-1.apk"],nativeLibraryDirectories=[/data/app-lib/com.package.mine-1, /vendor/lib, /system/lib]]

无法弄清楚我哪里出错了。有任何想法吗?谢谢。

最佳答案

com.package.mine 是您的包名称,MyButton 是您的自定义按钮类名称。

所以你应该在包名下有那个类。你在做什么是错误的。

将您的自定义按钮类放在一个单独的文件中。您的包名称不是 com.package.mine.MyActivity。它是 com.package.mine

如果你想要一个内部类,你可以这样做

    public class MainActivity extends Activity {


@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
MyButton mb = new MyButton(this);
setContentView(mb);
mb.setText("hello");
}
public class MyButton extends Button {

public MyButton(Context context) {
super(context);
// TODO Auto-generated constructor stub
}

public MyButton(Context context, AttributeSet attrs) {
super(context, attrs);
}

@Override
public void setText(CharSequence text, BufferType type) {
// TODO Auto-generated method stub
super.setText(text, type);
}
}
}

关于android - 找不到扩展 View 的类?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18465896/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com