2016-04-21 4 views
0

Я получаю ошибку Unhandled Exception: «System.NullReferenceException: ссылка на объект, не установленная на экземпляр объекта» при попытке запустить следующее приложение Xamarin для Android.Android ListView Ошибка с Xamarin

using Android.App; 
using Android.OS; 
using Android.Widget; 
using System; 

namespace CrossTest1.Droid 
{ 
    [Activity(Label = "CrossTest1.Droid", MainLauncher = true, Icon = "@drawable/icon")] 
    public class MainActivity : ListActivity 
    { 
     private int count = 1; 

     private BetsViewModel viewModel1; 

     private String[] planets = new String[] { "Apple", "Banana", "Mango", "Grapes" }; 

     protected override void OnCreate(Bundle bundle) 
     { 
      base.OnCreate(bundle); 

      // Set our view from the "main" layout resource 
      SetContentView(Resource.Layout.Main); 

      viewModel1 = new BetsViewModel(); 

      Button button = FindViewById<Button>(Resource.Id.myButton); 

      ArrayAdapter adapter = new ArrayAdapter<String>(this, Resource.Id.listView1, Resource.Id.label, planets); 

      ListView listView = (ListView)FindViewById(Resource.Id.listView1); 
      listView.SetAdapter(adapter); 

      button.Click += delegate 
      { 
       button.Enabled = false; 

       button.Enabled = true; 
      }; 
     } 
    } 
} 

Ниже представлен мой файл axml.

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:orientation="vertical" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent"> 
    <Button 
     android:id="@+id/myButton" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:text="@string/hello" /> 
    <ListView 
     android:minWidth="25px" 
     android:minHeight="25px" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:id="@+id/listView1" /> 
    <TextView 
     android:id="@+id/label" 
     android:layout_width="fill_parent" 
     android:layout_height="fill_parent" 
     android:padding="10dip" 
     android:textSize="16dip" 
     android:textStyle="bold" /> 

</LinearLayout> 
+1

Либо исследовать стек трассировать или использовать отладчик для выполнения кода, пока не определите, какая строка вызывает исключение. – Jason

ответ

1

Я предполагаю, что вы получаете исключение Android Inflater во время выполнения на этом:

ArrayAdapter adapter = new ArrayAdapter<String>(this, Resource.Id.listView1, Resource.Id.label, planets); 

Вы должны пройти макет вашего элемента вместо Listview:

ArrayAdapter adapter = new ArrayAdapter<String>(this, Resource.Id.YOURLISTVIEWITEMLAYOUT, Resource.Id.label, planets); 
+0

ahhh, да, вы правы в 'BetsViewModel()', после чего он получит 'Android.Content.Res.Resources + NotFoundException: идентификатор ресурса #xxxx type #xxx недопустим' из-за его axml – SushiHangover

+0

Спасибо , который зафиксировал это. –

Смежные вопросы