安卓編程時想在xml布局中自定義一個view,但當把自定義的view寫在xml裡面時,就會報錯說The following classes could not be instantiated:- com.example.wifidetection.MyPaint.MyView 。
其中MyView就是我自定義的view,前面是它的路徑,裡面wifideection是包名,MyPaint是MyView所在的類,代碼如下:
<?xml version="1.0" encoding="utf-8"?>
xmlns:tools="http://schemas.android.com/tools"
xmlns:custom="http://schemas.android.com/apk/res/com.example.wifidetection"
android:id="@+id/mScrollView"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:scrollbars="vertical" >
android:orientation = "vertical"
android:id="@+id/main_layout"
android:layout_width="match_parent"
android:layout_height="match_parent" >
<Button
android:id="@+id/start"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="開始繪圖" />
<com.example.wifidetection.MyPaint.MyView
android:layout_width="200dp"
android:layout_height="100dp"
/>
MyPaint中是這樣的
public class MyPaint extends ActionBarActivity {
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
·····
setContentView(R.layout.paint_layout);//顯示MyView布局
}
class MyView extends View
{
public MyView(Context context, AttributeSet attrs)
{
this(context, attrs, 0);
}
public MyView(Context context, AttributeSet attrs, int defStyle)
{
super(context, attrs, defStyle);
}
public MyView(Context context){
super(context);
一直搞不懂,網上也沒找到什麼好的解釋,求論壇裡大神解答
MyView 是內部類,把myview獨立一個.java文件,定義成public類