C# 可展开列表中的ImageView

C# 可展开列表中的ImageView,c#,android,xamarin,C#,Android,Xamarin,我正在尝试创建一个包含文本和图像视图的可消耗列表。我现在就是这样做的:有一个父xaml和两个子xaml(一个ChildText.xaml和一个ChildImage.xaml)。我希望父项之一包含图像。我在适配器中使用了以下代码: public override View GetChildView (int groupPosition, int childPosition, bool isLastChild, View convertView, ViewGroup parent) { va

我正在尝试创建一个包含文本和图像视图的可消耗列表。我现在就是这样做的:有一个父xaml和两个子xaml(一个ChildText.xaml和一个ChildImage.xaml)。我希望父项之一包含图像。我在适配器中使用了以下代码:

public override View GetChildView (int groupPosition, int childPosition, bool isLastChild, View convertView, ViewGroup parent) {
    var item = _dictGroup [_lstGroupID [groupPosition]] [childPosition];
    if(item.Contains("ichart")) {
        if (convertView == null)
            convertView = _activity.LayoutInflater.Inflate (Resource.Layout.ListControl_ImageChild, null);

            var imageView = convertView.FindViewById<ImageView>(Resource.Id.image);
            var imageBitmap = GetImageBitmapFromUrl (item);
            imageView.SetImageBitmap (imageBitmap); //X

    } else {
        string[] data = item.Split ('_');

        if (convertView == null)
            convertView = _activity.LayoutInflater.Inflate (Resource.Layout.ListControl_Child, null);

        var titleBox = convertView.FindViewById<TextView> (Resource.Id.titleSmall);
        var textBox = convertView.FindViewById<TextView> (Resource.Id.txtSmall);
        titleBox.SetText (data[0], TextView.BufferType.Normal);
        textBox.SetText (data[1], TextView.BufferType.Normal);
    }
    return convertView;
}
public override View GetChildView(int-groupPosition、int-childPosition、bool-isLastChild、View-convertView、View-group-parent){
变量项=_dictGroup[_lstGroupID[groupPosition]][childPosition];
如果(项目包含(“ichart”)){
if(convertView==null)
convertView=\u activity.LayoutFlater.Inflate(Resource.Layout.ListControl\u ImageChild,null);
var-imageView=convertView.findviewbyd(Resource.Id.image);
var imageBitmap=GetImageBitmapFromUrl(项目);
imageView.SetImageBitmap(imageBitmap);//X
}否则{
字符串[]数据=项。拆分(“”);
if(convertView==null)
convertView=_activity.LayoutInflater.Inflate(Resource.Layout.ListControl_子项,null);
var titleBox=convertView.findviewbyd(Resource.Id.titleSmall);
var textBox=convertView.findviewbyd(Resource.Id.txtsall);
titleBox.SetText(数据[0],TextView.BufferType.Normal);
textBox.SetText(数据[1],TextView.BufferType.Normal);
}
返回视图;
}
因此,如果字符串包含ichart,它应该创建一个ImageView。这是可行的,但当我尝试单击打开另一个选项卡(包含文本)时,我在X行上得到一个nullpointer异常,表示imageView为null。为什么它会进入那个“如果”

谁能告诉我我做错了什么


提前感谢

首先,我们必须制作一个图像数组&我们希望将父名称放入可扩展列表视图中。然后使用数组适配器类调用这些数组。
在数组适配器根据您创建的数组设置所有图像和文本视图之后,您必须手动将第一个变量放入.xml文件中

Mayank,你能在回答的同时提供一些示例代码吗?仅仅提供一个解释可能有点难以理解。这将非常有帮助。