I have a custom View extending SurfaceView. The XML layout is
<com.myPackage.MyCustomView
android:id="@+id/mycview"
android:layout_width="fill_parent"
android:layout_height="fill_parent"/>
The class is :
public class MyCustomView extends SurfaceView{
public float[] xpositions;
public float[] ypositions;
public String[] units;
public MyCustomView(Context context, float[] xpos, float[] ypos,String[] u) {
super(context);
xpositions=xpos;
ypositions =ypos;
units=u;
}
}
In the context Activity for this method, I have the following line
MyCustomView mv = (MyCustomView)findViewById(R.id.mycview);
The Logcat output has the following
01-30 01:51:12.124: ERROR/AndroidRuntime(4934): Caused by: java.lang.NoSuchMethodException:MyCustomView(Context,AttributeSet)
01-30 01:51:12.124: ERROR/AndroidRuntime(4934): at java.lang.Class.getMatchingConstructor(Class.java:674)
01-30 01:51:12.124: ERROR/AndroidRuntime(4934): at java.lang.Class.getConstructor(Class.java:486)
01-30 01:51:12.124: ERROR/AndroidRuntime(4934): at android.view.LayoutInflater.createView(LayoutInflater.java:475)
For some reason, my constructor is causing above exception. I would appreciate any help finding what is wrong with the code.
UPDATE:
I changed the constructor to add AttributeSet and in my activity wrote the following:
XmlPullParser parser = getResources().getXml(R.id.mycview);
AttributeSet attributes = Xml.asAttributeSet(parser);
MyCustomView cv = new MyCustomView(this,attributes,xx,yy,uu);
cv = (MyCustomView)findViewById(R.id.mycview);
But I get the same logcat output.
See Question&Answers more detail:
os 与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…