我有一个在 Mono for Android 中构建的 Android 应用程序,其中有一个 ExpandableListView。我正在为我的列表适配器扩展 BaseExpandableListAdapter 类。
这是我活动的 OnCreate 方法:
protected override void OnCreate(Bundle savedInstanceState)
{
base.OnCreate(savedInstanceState);
SetContentView(Resource.Layout.Main);
lv = (ExpandableListView)FindViewById(Resource.Id.lv);
var expandableAdapter = new MyExpandableListAdapter(this);
lv.SetAdapter(expandableAdapter);
}
该列表已正确加载,但是当我单击一个项目时,我得到了一个致命的异常。我用调试运行,异常发生在执行 GetChildView 方法之后。
public override View GetChildView(int groupPosition, int childPosition, bool isLastChild,View convertView, ViewGroup parent)
{
if (convertView == null)
{
LayoutInflater infaInflater = (LayoutInflater)context.GetSystemService(Context.LayoutInflaterService);
convertView = infaInflater.Inflate(Resource.Layout.childLayout, null);
}
TextView textView = (TextView)convertView.FindViewById(Resource.Id.tvChild);
textView.SetText(GetChild(groupPosition, childPosition).ToString(), TextView.BufferType.Normal);
return textView;
}
这是异常消息:
FATAL EXCEPTION: main
E/AndroidRuntime(12474): java.lang.ClassCastException: android.widget.LinearLayout$LayoutParams cannot be cast to android.widget.AbsListView$LayoutParams
:at android.widget.ListView.setupChild(ListView.java:1806)
:at android.widget.ListView.makeAndAddView(ListView.java:1775)
:at android.widget.ListView.fillDown(ListView.java:672)