如何解决Xamarin.Forms.Platform.Android.ListViewAdapter.IsEnabled异常?

问题描述 投票:2回答:2

我有一个列表,其中包含一些用户选择的项目。我的CustumCellViewTemplate有一个“取消选择”控件,它从列表中删除单元格。当列表完全填充项目时,“取消选择”控件可以工作,但是当我想删除最后一项或者最后一项出现在ListView中时,我得到了这个例外:

"System.NullReferenceException: Object reference not set to an instance of an object.
at Xamarin.Forms.Platform.Android.ListViewAdapter.IsEnabled (System.Int32 position) [0x0002a] in D:\a\1\s\Xamarin.Forms.Platform.Android\Renderers\ListViewAdapter.cs:413 
at Android.Widget.BaseAdapter.n_IsEnabled_I (System.IntPtr jnienv, System.IntPtr native__this, System.Int32 position) [0x00008] in <263adecfa58f4c449f1ff56156d886fd>:0 
at (wrapper dynamic-method) System.Object.389216aa-a260-49e0-aaaa-e4e2031ad22f(intptr,intptr,int)"

这是我的配置:

Mono 8.1
Xamarin.Forms 3.3.0.893527-pre3
Xamarin.Android.Support.Design 27.0.2.1
Xamarin.Android.Support.v7.AppCompat 27.0.2.1
Xamarin.Android.Support.v4 27.0.2.1
Xamarin.Android.Support.v7.CardView 27.0.2.1
Xamarin.Android.Support.v7.MediaRouter 27.0.2.1
Xamarin.GooglePlayServices.Location 60.1142.1
Xamarin.GooglePlayServices.Maps 60.1142.1
Xamarin.Essentials 0.10.0-preview

你知道如何解决这个问题吗?

问候

xamarin exception xamarin.forms xamarin.android
2个回答
3
投票

你可能现在已经解决了你的问题,但只是把这个问题留给了其他碰到这个问题的人。

感谢Jason的问题,它引导我清理我对列表视图逻辑的可绑定项源的操作。我做了很多.Clear()和Add,我不需要做。我减少了这些数量,它为我解决了问题。所以我会看看你是如何搞乱列表视图的ItemSource的。


0
投票

我在ListViewTabbedPage面对这一点,所以在更改标签时我正在重置ItemSourceListview,解决了我的问题

protected void OnCurrentPageChanged()
{
    if (Children != null && CurrentPage != null)
    {
        list1.ItemsSource = null;
        list2.ItemsSource = null;
        list3.ItemsSource = null;

        SelectedTabIndex = Children.IndexOf(this.CurrentPage);

        if (SelectedTabIndex == 0)
            list1.ItemsSource = TimeTableListData;
        if  (SelectedTabIndex == 1)
            list2.ItemsSource = TimeTableListData;
        if (SelectedTabIndex == 2)
            list3.ItemsSource = TimeTableListData;
    }
} 
© www.soinside.com 2019 - 2024. All rights reserved.