Android Can';找不到扩展视图的类?
我正在将Android Can';找不到扩展视图的类?,android,class,android-layout,android-manifest,Android,Class,Android Layout,Android Manifest,我正在将按钮视图扩展到MyButton,以添加一些定制方法,即 public class MyButton extends Button { public SignUpButton(Context context, AttributeSet attrs) { super(context, attrs); } // Bespoke methods etc. } 然后在布局xml中 <com.package.mine.MyButton
按钮
视图扩展到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"
/>
我在xml布局中将其称为
<com.package.mine.MyActivity.MyButton
android:id = "@+id/button"
android:layout_height="wrap_content"
android:layout_width="match_parent"
/>
不知道我哪里出了问题。有什么想法吗?谢谢。
com.package.my
是您的软件包名称,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);
}
}
}
为什么需要static?仍在学习中,但我读到的所有内容都表明,当它是活动中的内部类时,应该将其声明为static。我尝试过非静态的,但也不行。它是内部类吗?你应该用
我很困惑<代码>coz com.package.mine是您的包名,MyButton是您的自定义按钮类名。因此,应该在包名称下包含该类。你所做的是错误的。将自定义按钮类放在单独的文件中。您的包名不是com.package.mine.MyActivity
。它是com.package.mine
。
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]]
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);
}
}
}