Android Monodroid Listview.Adapter与ListActivity.ListAdapter

Android Monodroid Listview.Adapter与ListActivity.ListAdapter,android,listview,android-listview,xamarin.android,listadapter,Android,Listview,Android Listview,Xamarin.android,Listadapter,在我正在处理的项目中,我最初是从ListActivity继承的,以便使活动中包含ListView。但是,由于我有一个基类来简化设置菜单和其他事情,我想看看是否可以将其切换到正常的活动,以便只有一个基类。但我的问题是,对于其中一个活动,将Listactivity.Listadapter与我构建的适配器一起使用效果很好,但是当我尝试对ListView.adapter使用相同的适配器时,它会给我一个NullReferenceExection。从文档中看,似乎两者都在调用相同的对象类型(IListAda

在我正在处理的项目中,我最初是从ListActivity继承的,以便使活动中包含ListView。但是,由于我有一个基类来简化设置菜单和其他事情,我想看看是否可以将其切换到正常的活动,以便只有一个基类。但我的问题是,对于其中一个活动,将Listactivity.Listadapter与我构建的适配器一起使用效果很好,但是当我尝试对ListView.adapter使用相同的适配器时,它会给我一个NullReferenceExection。从文档中看,似乎两者都在调用相同的对象类型(IListAdapter),而我一直无法找出原因

    private ListView ticketView;
    List<TicketViewModel> tickets;
    List<String> ticketInfo;
    protected override void OnCreate(Bundle bundle)
    {
        base.OnCreate(bundle);
        ticketView = (ListView)FindViewById(Android.Resource.Id.List);
        //pulls data from a remote source
        //and puts it into a string array
        tickets = new List<Ticket>();
        tickets = DataDownload();
        ticketInfo = new List<string>();
        foreach (Ticket tick in tickets)
        {
            ticketInfo.Add(tick.Subject);
        }

        //adapter I am using
        ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,
        Resource.Layout.itemList, ticketInfo);

        //this one works
        ListAdapter = adapter;

        //this one does not
        ticketView.Adapter = adapter;
    }
private-ListView-ticketView;
售票单;
列表TICKTINFO;
创建时受保护的覆盖无效(捆绑包)
{
base.OnCreate(bundle);
ticketView=(ListView)FindViewById(Android.Resource.Id.List);
//从远程源提取数据
//并将其放入字符串数组中
票证=新列表();
票证=数据下载();
ticketInfo=新列表();
foreach(车票中的车票勾选)
{
ticketInfo.Add(勾选主题);
}
//我正在使用的适配器
ArrayAdapter=新的ArrayAdapter(此,
Resource.Layout.itemList,ticketInfo);
//这个有效
ListAdapter=适配器;
//这个没有
ticketView.Adapter=适配器;
}
我肯定我错过了一些明显的东西,但我一辈子都想不出来

编辑:

这是日志

07-30 08:59:53.498 I/ActivityManager(  162): Starting: Intent { cmp=KahunaAndroid.KahunaAndroid/kahunaandroid.TicketList } from pid 2101
07-30 08:59:59.534 D/ViewConsistency( 2101): AbsListView android.widget.ListView@40845958 enabled= true
07-30 08:59:59.594 D/dalvikvm( 2101): GC_EXTERNAL_ALLOC freed 9K, 47% free 3405K/6407K, external 575K/587K, paused 55ms
07-30 08:59:59.604 D/ViewConsistency( 2101): AbsListView android.widget.ListView@40845958 enabled= true
07-30 09:00:02.947 D/ViewConsistency( 2101): AbsListView android.widget.ListView@40867758 enabled= true
07-30 09:00:02.947 D/ViewConsistency( 2101): AbsListView android.widget.ListView@40867758 enabled= true
07-30 09:00:03.498 W/ActivityManager(  162): Launch timeout has expired, giving up wake lock!
07-30 09:00:03.538 W/ActivityManager(  162): Activity idle timeout for HistoryRecord{40a0aa88 KahunaAndroid.KahunaAndroid/kahunaandroid.TicketList}
07-30 09:00:13.958 I/MonoDroid( 2101): UNHANDLED EXCEPTION: System.NullReferenceException: Object reference not set to an instance of an object
07-30 09:00:13.958 I/MonoDroid( 2101): at KahunaAndroid.TicketList.OnCreate (Android.OS.Bundle) [0x000aa] in C:\Users\david\Documents\Visual Studio 2010\Projects\AndroidApplication2\AndroidApplication2\Tickets\TicketList.cs:44
07-30 09:00:13.958 I/MonoDroid( 2101): at Android.App.Activity.n_OnCreate_Landroid_os_Bundle_ (intptr,intptr,intptr) [0x00010] in /Users/builder/data/lanes/monodroid-mac-monodroid-4.2.4-branch/9f7cbd60/source/monodroid/src/Mono.Android/platforms/android-8/src/generated/Android.App.Activity.cs:1490
07-30 09:00:13.958 I/MonoDroid( 2101): at (wrapper dynamic-method) object.50e53c19-ce69-4f39-9dda-0aec4e7e7dcd (intptr,intptr,intptr) <IL 0x00012, 0x00033>
07-30 08:59:53.498 I/ActivityManager(162):从pid 2101开始:Intent{cmp=KahunaAndroid.KahunaAndroid/KahunaAndroid.TicketList}
07-30 08:59:59.534 D/ViewConsistency(2101):AblistView android.widget。ListView@40845958启用=真
07-30 08:59:59.594 D/dalvikvm(2101):GC_外部分配释放9K,47%释放3405K/6407K,外部575K/587K,暂停55ms
07-30 08:59:59.604 D/ViewConsistency(2101):AblistView android.widget。ListView@40845958启用=真
07-30 09:00:02.947 D/视图一致性(2101):AblistView android.widget。ListView@40867758启用=真
07-30 09:00:02.947 D/视图一致性(2101):AblistView android.widget。ListView@40867758启用=真
07-30 09:00:03.498 W/ActivityManager(162):启动超时已过期,放弃唤醒锁定!
07-30 09:00:03.538 W/ActivityManager(162):历史记录的活动空闲超时{40a0aa88 KahunaAndroid.KahunaAndroid/KahunaAndroid.TicketList}
07-30 09:00:13.958 I/MonoDroid(2101):未处理的异常:System.NullReferenceException:对象引用未设置为对象的实例
07-30 09:00:13.958 I/MonoDroid(2101):在KahunaAndroid.TicketList.OnCreate(Android.OS.Bundle)[0x000aa]中,C:\Users\david\Documents\Visual Studio 2010\Projects\AndroidApplication 2\AndroidApplication 2\Tickets\TicketList.cs:44
07-30 09:00:13.958 I/MonoDroid(2101):在Android.App.Activity.n_OnCreate_Landroid_os_Bundle(intptr,intptr,intptr)[0x00010]in/Users/builder/data/lanes/MonoDroid-mac-MonoDroid-4.2.4-branch/9f7cbd60/source/MonoDroid/src/Mono.Android/platforms/Android/Android/8/src/generated/Android.App.Activity.cs:1490
07-30 09:00:13.958 I/MonoDroid(2101):at(包装器动态方法)对象50e53c19-ce69-4f39-9dda-0aec4e7e7dcd(intptr、intptr、intptr)

异常“System.NullReferenceException:objectreference未设置为对象的实例”

使用我使用的另一个类似列表样式的页面,在玩了一点之后,我得到了这个。我认为导致错误的原因(除了这个,我做了很多更改,所以可能是其他东西修复了它)是我忘记了:

SetContentView(Resource.Layout.itemList);

在初始化listview之前。在改变了这一点之后,它就如预期的那样工作了。由于我没有使用该视图创建我正在使用的ListView(来自android.resource),我最初认为在获取ListView项之前没有必要调用它。

完整的异常和堆栈跟踪是什么?@jonp刚刚设法弄清楚如何从我的设备获取完整的堆栈跟踪,但它比我想发布的要大,我不确定什么信息是相关的。