可展开列表中的图像视图

本文关键字:图像 视图 列表 可展开 | 更新日期: 2023-09-27 18:35:40

我正在尝试创建一个包含文本和ImageView的消耗性列表。这就是我目前的做法:有一个父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;
}

因此,如果字符串包含 ichart,它应该创建一个 ImageView。这有效,但是当我尝试单击打开另一个选项卡(包含文本)时,我在带有 X 表示 imageView 为空的行上出现空指针异常。为什么它进入那个如果?

谁能告诉我我做错了什么?

提前致谢

可展开列表中的图像视图

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