[mono-android] ExpandableListActivity

Carlo Bolz cb at dm-edv.de
Sun Mar 13 16:47:38 EDT 2011


Hello guys,

I try to get this sample work with monodroid: 
http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/view/ExpandableList3.html
 
And here is my code:

using System;
using Android.App;
using Android.Content;
using Android.Runtime;
using Android.Views;
using Android.Widget;
using Android.OS;
using System.Collections.Generic;
namespace MonoAndroidApplication2
{
[Activity(Label = "MonoAndroidApplication2", MainLauncher = true)]
public class Activity1 : ExpandableListActivity
{
IExpandableListAdapter mAdapter;
String NAME = "NAME";
String IS_EVEN = "IS_EVEN";
protected override void OnCreate(Bundle bundle)
{
base.OnCreate(bundle);
List<IDictionary<String, object>> groupData = new 
List<IDictionary<string,object>>();
List<IList<IDictionary<String, object>>> childData = new 
List<IList<IDictionary<string,object>>>();
for (int i = 0; i < 20; i++)
{
Dictionary<String, object> curGroupMap = new Dictionary<string,object>();
groupData.Add(curGroupMap);
curGroupMap.Add(NAME, "Group " + i);
curGroupMap.Add(IS_EVEN, (i % 2 == 0) ? "This group is even" : "This group 
is odd");
List<IDictionary<String, object>> children = new 
List<IDictionary<string,object>>();
for (int j = 0; j < 15; j++)
{
Dictionary<String, object> curChildMap = new Dictionary<string,object>();
children.Add(curChildMap);
curChildMap.Add(NAME, "Child " + j);
curChildMap.Add(IS_EVEN, (j % 2 == 0) ? "This child is even" : "This child 
is odd");
}
childData.Add(children);
}
// Set up our adapter
mAdapter = new SimpleExpandableListAdapter(
this,
groupData,
Android.Resource.Layout.SimpleExpandableListItem1,
new String[] { NAME, IS_EVEN },
new int[] { Android.Resource.Id.Text1, Android.Resource.Id.Text2 },
childData,
Android.Resource.Layout.SimpleExpandableListItem2,
new String[] { NAME, IS_EVEN },
new int[] { Android.Resource.Id.Text1, Android.Resource.Id.Text2 }
);
SetListAdapter(mAdapter);
}
}
}
 

And this is the exception:

E/AndroidRuntime( 1275): java.lang.ClassCastException: 
mono.android.runtime.JavaObject
E/AndroidRuntime( 1275):  at 
android.widget.SimpleExpandableListAdapter.getGroupView(SimpleExpandableListAdapter.java:278)
E/AndroidRuntime( 1275):  at 
android.widget.ExpandableListConnector.getView(ExpandableListConnector.java:445)
E/AndroidRuntime( 1275):  at 
android.widget.AbsListView.obtainView(AbsListView.java:1315)
E/AndroidRuntime( 1275):  at 
android.widget.ListView.makeAndAddView(ListView.java:1727)
E/AndroidRuntime( 1275):  at 
android.widget.ListView.fillDown(ListView.java:652)
E/AndroidRuntime( 1275):  at 
android.widget.ListView.fillFromTop(ListView.java:709)
E/AndroidRuntime( 1275):  at 
android.widget.ListView.layoutChildren(ListView.java:1580)
E/AndroidRuntime( 1275):  at 
android.widget.AbsListView.onLayout(AbsListView.java:1147)
E/AndroidRuntime( 1275):  at android.view.View.layout(View.java:7034)
E/AndroidRuntime( 1275):  at 
android.widget.FrameLayout.onLayout(FrameLayout.java:333)
E/AndroidRuntime( 1275):  at android.view.View.layout(View.java:7034)
E/AndroidRuntime( 1275):  at 
android.widget.LinearLayout.setChildFrame(LinearLayout.java:1249)
E/AndroidRuntime( 1275):  at 
android.widget.LinearLayout.layoutVertical(LinearLayout.java:1125)
E/AndroidRuntime( 1275):  at 
android.widget.LinearLayout.onLayout(LinearLayout.java:1042)
E/AndroidRuntime( 1275):  at android.view.View.layout(View.java:7034)
E/AndroidRuntime( 1275):  at 
android.widget.FrameLayout.onLayout(FrameLayout.java:333)
E/AndroidRuntime( 1275):  at android.view.View.layout(View.java:7034)
E/AndroidRuntime( 1275):  at 
android.view.ViewRoot.performTraversals(ViewRoot.java:1049)
E/AndroidRuntime( 1275):  at 
android.view.ViewRoot.handleMessage(ViewRoot.java:1744)
E/AndroidRuntime( 1275):  at 
android.os.Handler.dispatchMessage(Handler.java:99)
E/AndroidRuntime( 1275):  at android.os.Looper.loop(Looper.java:144)
E/AndroidRuntime( 1275):  at 
android.app.ActivityThread.main(ActivityThread.java:4937)
E/AndroidRuntime( 1275):  at java.lang.reflect.Method.invokeNative(Native 
Method)
E/AndroidRuntime( 1275):  at 
java.lang.reflect.Method.invoke(Method.java:521)
E/AndroidRuntime( 1275):  at 
com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868)
E/AndroidRuntime( 1275):  at 
com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626)
E/AndroidRuntime( 1275):  at dalvik.system.NativeStart.main(Native Method)

What I´m doing wrong?

Help would be appreciated.

Kind regards,
Carlo
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.ximian.com/mailman/private/monodroid/attachments/20110313/ffae19a8/attachment-0001.html 


More information about the Monodroid mailing list