android - How can I fix a "Type mismatch error: cannot convert from element type to float" in a parcelable? -
i trying pass floatarraylist in parcelable main activity "copyofbargraph" activity when user pushes button.
here's code bundle in main activity (sent when user pushes button):
public void bargraphhandler (view view) { bundle b = new bundle(); b.putparcelable("fnumbers", floatarray); intent barintent = new intent(this, copyofbargraph.class); barintent.putextras(b); startactivity(barintent); }
the code parcelable arraylist is:
public class floatarraylist extends arraylist<fnumber> implements parcelable{ private static final long serialversionuid = 663585476779879096l; public floatarraylist(){ } public floatarraylist(parcel in){ readfromparcel(in); } @suppresswarnings("rawtypes") public static final parcelable.creator creator = new parcelable.creator() { public floatarraylist createfromparcel(parcel in) { return new floatarraylist(in); } public floatarraylist[] newarray(int arg0) { return new floatarraylist[arg0]; }}; private void readfromparcel(parcel in) { this.clear(); int size = in.readint(); (int = 0; < size; i++) { fnumber fn = new fnumber(); fn.setfnumber(in.readfloat()); this.add(fn); } } public int describecontents() { return 0; } public void writetoparcel(parcel dest, int flags) { int size = this.size(); dest.writeint(size); (int = 0; < size; i++) { fnumber fn = this.get(i); dest.writefloat(fn.getfnumber()); }}} >
for fnumber code is:
public class fnumber { private float fl; public fnumber(){ } public fnumber(float fl){ this.fl = fl; } public void setfnumber(float fl) { this.fl = fl; } public float getfnumber() { return fl; } } >
until here, seems work fine.
my problem when try use floatarraylist in copyofbargrpah class:
public class copyofbargraph extends activity{ public floatarraylist floatarray; public intent getintent(context context) { //data bundle b = getintent().getextras(); //get intent's extras floatarray = b.getparcelable("fnumbers"); //get our list float[] y = new float[floatarray.size()]; int index = 0; (float f : floatarray) { // line error: type mismatch: cannot convert element type fnumber float. y[index++] = f; }
this first time coding in java , android , can't fix problem. or hint very helpful.
thanks in advance.
instead :
public static final parcelable.creator creator = new parcelable.creator() { public floatarraylist createfromparcel(parcel in) { return new floatarraylist(in); } public floatarraylist[] newarray(int arg0) { return new floatarraylist[arg0]; }};
try write type
:
public static final parcelable.creator<floatarraylist> creator = new parcelable.creator<floatarraylist>) { @override public floatarraylist createfromparcel(parcel in) { return new floatarraylist(in); } public floatarraylist[] newarray(int arg0) { return new floatarraylist[arg0]; }};
after that:
float[] y = new float[floatarray.size()]; int index = 0; (fnumber f : floatarray) { y[index++] = fnumber.getfnumber(); }
Comments
Post a Comment