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

Popular posts from this blog

c# - How Configure Devart dotConnect for SQLite Code First? -

java - Copying object fields -

c++ - Clear the memory after returning a vector in a function -