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);
        }
    }
}