android - ClassCastException using Slide ExpandableListAdapter -


i'm implementing slide expandablelistadapter tjerk wolternik, getting classcastexception when list i'm using on called. i'm hoping can me figure out why happening.

i using on custom array adapter, seen here:

public class resultsadapter extends arrayadapter<string> {  private final layoutinflater layoutinflater;  public resultsadapter(context context, int textviewresourceid) {        super(context, textviewresourceid);        layoutinflater = layoutinflater.from(context); }  @override public view getview(int position, view convertview, viewgroup parent){      if(convertview == null){                     convertview = layoutinflater.inflate(r.layout.row, null); //must overall layout       }       textview venname = (textview) convertview.findviewbyid(r.id.rowname);     textview venaddress = (textview) convertview.findviewbyid(r.id.rowadd);      venname.settext(venuelist.getvenuename(position));     venaddress.settext(venuelist.getvenueaddress(position));      return convertview; } 

}

the listview working extension of listfragment, right here:

public class listfragmentclickable extends listfragment{    private onitemselectedlistener listener;    @override   public view oncreateview(layoutinflater inflater, viewgroup container, bundle savedinstancestate) {        view view = inflater.inflate(r.layout.activity_results, container, false);       return view;   }    @override   public void onlistitemclick(listview l, view v, int position, long id) {       updatedetail(position); //see bottom   }     public interface onitemselectedlistener {       public void onitemselected(string name);   }     @override   public void onattach(activity activity) {       super.onattach(activity);       if (activity instanceof onitemselectedlistener) {         listener = (onitemselectedlistener) activity;       } else {         throw new classcastexception(activity.tostring()             + " must implement listfragmentclickable.onitemselectedlistener");       }   }    public void updatedetail(int position) {       string name = venuelist.getvenuename(position);       listener.onitemselected(name);   } 

}

the logcat pointing portion of library's code (specifically final linearlayout.layoutparams params = (linearlayout.layoutparams)target.getlayoutparams();):

    private void updateexpandable(view target, int position) {      final linearlayout.layoutparams params = (linearlayout.layoutparams)target.getlayoutparams();     if(openitems.get(position)) {         target.setvisibility(view.visible);         params.bottommargin = 0;     } else {         target.setvisibility(view.gone);         params.bottommargin = 0-viewheights.get(position);     } } 

and here logcat:

07-31 23:42:20.931: e/androidruntime(3557): fatal exception: main 07-31 23:42:20.931: e/androidruntime(3557): java.lang.classcastexception: android.widget.relativelayout$layoutparams 07-31 23:42:20.931: e/androidruntime(3557):     @ com.tjerkw.slideexpandable.library.abstractslideexpandablelistadapter.updateexpandable(abstractslideexpandablelistadapter.java:222) 07-31 23:42:20.931: e/androidruntime(3557):     @ com.tjerkw.slideexpandable.library.abstractslideexpandablelistadapter.enablefor(abstractslideexpandablelistadapter.java:159) 07-31 23:42:20.931: e/androidruntime(3557):     @ com.tjerkw.slideexpandable.library.abstractslideexpandablelistadapter.enablefor(abstractslideexpandablelistadapter.java:142) 07-31 23:42:20.931: e/androidruntime(3557):     @ com.tjerkw.slideexpandable.library.abstractslideexpandablelistadapter.getview(abstractslideexpandablelistadapter.java:64) 07-31 23:42:20.931: e/androidruntime(3557):     @ android.widget.abslistview.obtainview(abslistview.java:1449) 07-31 23:42:20.931: e/androidruntime(3557):     @ android.widget.listview.onmeasure(listview.java:1103) 07-31 23:42:20.931: e/androidruntime(3557):     @ android.view.view.measure(view.java:8532) 07-31 23:42:20.931: e/androidruntime(3557):     @ android.view.viewgroup.measurechildwithmargins(viewgroup.java:3261) 07-31 23:42:20.931: e/androidruntime(3557):     @ android.widget.framelayout.onmeasure(framelayout.java:250) 07-31 23:42:20.931: e/androidruntime(3557):     @ android.view.view.measure(view.java:8532) 07-31 23:42:20.931: e/androidruntime(3557):     @ android.view.viewgroup.measurechildwithmargins(viewgroup.java:3261) 07-31 23:42:20.931: e/androidruntime(3557):     @ android.widget.framelayout.onmeasure(framelayout.java:250) 07-31 23:42:20.931: e/androidruntime(3557):     @ android.view.view.measure(view.java:8532) 07-31 23:42:20.931: e/androidruntime(3557):     @ android.view.viewgroup.measurechildwithmargins(viewgroup.java:3261) 07-31 23:42:20.931: e/androidruntime(3557):     @ android.widget.framelayout.onmeasure(framelayout.java:250) 07-31 23:42:20.931: e/androidruntime(3557):     @ android.view.view.measure(view.java:8532) 07-31 23:42:20.931: e/androidruntime(3557):     @ android.view.viewgroup.measurechildwithmargins(viewgroup.java:3261) 07-31 23:42:20.931: e/androidruntime(3557):     @ android.widget.framelayout.onmeasure(framelayout.java:250) 07-31 23:42:20.931: e/androidruntime(3557):     @ android.view.view.measure(view.java:8532) 07-31 23:42:20.931: e/androidruntime(3557):     @ android.widget.linearlayout.measurehorizontal(linearlayout.java:683) 07-31 23:42:20.931: e/androidruntime(3557):     @ android.widget.linearlayout.onmeasure(linearlayout.java:311) 07-31 23:42:20.931: e/androidruntime(3557):     @ android.view.view.measure(view.java:8532) 07-31 23:42:20.931: e/androidruntime(3557):     @ android.view.viewgroup.measurechildwithmargins(viewgroup.java:3261) 07-31 23:42:20.931: e/androidruntime(3557):     @ android.widget.framelayout.onmeasure(framelayout.java:250) 07-31 23:42:20.931: e/androidruntime(3557):     @ android.view.view.measure(view.java:8532) 07-31 23:42:20.931: e/androidruntime(3557):     @ android.widget.linearlayout.measurevertical(linearlayout.java:531) 07-31 23:42:20.931: e/androidruntime(3557):     @ android.widget.linearlayout.onmeasure(linearlayout.java:309) 07-31 23:42:20.931: e/androidruntime(3557):     @ android.view.view.measure(view.java:8532) 07-31 23:42:20.931: e/androidruntime(3557):     @ android.view.viewgroup.measurechildwithmargins(viewgroup.java:3261) 07-31 23:42:20.931: e/androidruntime(3557):     @ android.widget.framelayout.onmeasure(framelayout.java:250) 07-31 23:42:20.931: e/androidruntime(3557):     @ android.view.view.measure(view.java:8532) 07-31 23:42:20.931: e/androidruntime(3557):     @ android.view.viewroot.performtraversals(viewroot.java:915) 07-31 23:42:20.931: e/androidruntime(3557):     @ android.view.viewroot.handlemessage(viewroot.java:1991) 07-31 23:42:20.931: e/androidruntime(3557):     @ android.os.handler.dispatchmessage(handler.java:99) 07-31 23:42:20.931: e/androidruntime(3557):     @ android.os.looper.loop(looper.java:150) 07-31 23:42:20.931: e/androidruntime(3557):     @ android.app.activitythread.main(activitythread.java:4358) 07-31 23:42:20.931: e/androidruntime(3557):     @ java.lang.reflect.method.invokenative(native method) 07-31 23:42:20.931: e/androidruntime(3557):     @ java.lang.reflect.method.invoke(method.java:507) 07-31 23:42:20.931: e/androidruntime(3557):     @ com.android.internal.os.zygoteinit$methodandargscaller.run(zygoteinit.java:849) 07-31 23:42:20.931: e/androidruntime(3557):     @ com.android.internal.os.zygoteinit.main(zygoteinit.java:607) 07-31 23:42:20.931: e/androidruntime(3557):     @ dalvik.system.nativestart.main(native method) 

can explain me happening? i'm using linearlayout in layout, i'm not sure casting issue is. layout follows in github link. help.

edit: here row.xml well:

<?xml version="1.0" encoding="utf-8"?> 

<textview     android:id="@+id/rowname"     android:layout_width="wrap_content"     android:layout_height="fill_parent"     android:textstyle="bold"     android:textsize="16dp"     android:focusable="false"     android:paddingleft="5dp" />  <textview     android:id="@+id/rowadd"     android:layout_width="wrap_content"     android:layout_height="fill_parent"     android:layout_below="@id/rowname"     android:focusable="false"     android:paddingtop="2dp"     android:paddingleft="5dp"/>  <textview     android:id="@+id/rowfit"     android:layout_width="wrap_content"     android:layout_height="wrap_content"     android:layout_alignparentright="true"     android:layout_alignparenttop="true"     android:paddingtop="5dp"     android:paddingright="10dp"     android:focusable="false"     android:textstyle="bold"     android:textsize="18dp" />  <textview     android:id="@+id/rowdist"     android:layout_width="wrap_content"     android:layout_height="wrap_content"     android:layout_alignparentright="true"     android:layout_alignparentbottom="true"     android:paddingbottom="5dp"     android:paddingright="10dp"     android:focusable="false"/>   <!-- below xml slide expandablelistview --> <button     android:id="@+id/expandable_toggle_button"     android:text="more"     android:layout_width="wrap_content"     android:layout_height="wrap_content"     android:layout_alignbottom="@+id/text"     android:layout_alignparentright="true"     android:layout_aligntop="@id/text"/>  <linearlayout     android:layout_width="fill_parent"     android:layout_height="fill_parent"     android:orientation="horizontal"     android:id="@+id/expandable"     android:background="#000000">      <!-- put whatever want in expandable view -->     <textview         android:id="@+id/testtext"         android:layout_width="wrap_content"         android:layout_height="wrap_content"         android:paddingtop="5dp"         android:text="testtestest"         android:paddingright="10dp"         android:focusable="false"         android:textstyle="bold"         android:textsize="18dp" />  </linearlayout>  <!-- slide expandablelistview xml ends here --> 

your row.xml doesn't complete @ all. believe library using expecting row.xml single linear layout 2 children. first child unexpanded view , second child expanded view. below (i haven't verified valid layout).

<?xml version="1.0" encoding="utf-8"?> <linearlayout xmlns:android="http://schemas.android.com/apk/res/android"               xmlns:slide="http://schemas.android.com/apk/res/com.tjerkw.slideexpandable.library"               android:layout_width="fill_parent"               android:layout_height="wrap_content"               android:orientation="vertical"> <relativelayout             android:layout_width="fill_parent"             android:layout_height="wrap_content"             android:orientation="horizontal"             android:id="@+id/item"> <textview     android:id="@+id/rowname"     android:layout_width="wrap_content"     android:layout_height="fill_parent"     android:textstyle="bold"     android:textsize="16dp"     android:focusable="false"     android:paddingleft="5dp" />  <textview     android:id="@+id/rowadd"     android:layout_width="wrap_content"     android:layout_height="fill_parent"     android:layout_below="@id/rowname"     android:focusable="false"     android:paddingtop="2dp"     android:paddingleft="5dp"/>  <textview     android:id="@+id/rowfit"     android:layout_width="wrap_content"     android:layout_height="wrap_content"     android:layout_alignparentright="true"     android:layout_alignparenttop="true"     android:paddingtop="5dp"     android:paddingright="10dp"     android:focusable="false"     android:textstyle="bold"     android:textsize="18dp" />  <textview     android:id="@+id/rowdist"     android:layout_width="wrap_content"     android:layout_height="wrap_content"     android:layout_alignparentright="true"     android:layout_alignparentbottom="true"     android:paddingbottom="5dp"     android:paddingright="10dp"     android:focusable="false"/>   <!-- below xml slide expandablelistview --> <button     android:id="@+id/expandable_toggle_button"     android:text="more"     android:layout_width="wrap_content"     android:layout_height="wrap_content"     android:layout_alignbottom="@+id/text"     android:layout_alignparentright="true"     android:layout_aligntop="@id/text"/> </relativelayout>  <linearlayout     android:layout_width="fill_parent"     android:layout_height="fill_parent"     android:orientation="horizontal"     android:id="@+id/expandable"     android:background="#000000">      <!-- put whatever want in expandable view -->     <textview         android:id="@+id/testtext"         android:layout_width="wrap_content"         android:layout_height="wrap_content"         android:paddingtop="5dp"         android:text="testtestest"         android:paddingright="10dp"         android:focusable="false"         android:textstyle="bold"         android:textsize="18dp" />  </linearlayout> </linearlayout>  <!-- slide expandablelistview xml ends here --> 

you can check out sample expandable_list_item.xml


Comments

Popular posts from this blog

basic authentication with http post params android -

vb.net - Virtual Keyboard commands -

How to get multiresult with multicondition in Sql Server -