Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/cmake/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android listView SetAdapter在应用程序启动时导致崩溃_Android_Xamarin.android - Fatal编程技术网

Android listView SetAdapter在应用程序启动时导致崩溃

Android listView SetAdapter在应用程序启动时导致崩溃,android,xamarin.android,Android,Xamarin.android,我正在玩Monodroid,试图在启动时为listview设置一个适配器。我在屏幕上有一堆控件,我试图做的是当点击按钮时,一个项目进入listview 我没有从调试器中得到任何错误,只是“不幸的是,应用程序1已停止”,这使我很难找出我做错了什么 这是我的密码: public class Activity1 : Activity { List<string> items = new List<string>(); ArrayAdapter<string

我正在玩Monodroid,试图在启动时为listview设置一个适配器。我在屏幕上有一堆控件,我试图做的是当点击按钮时,一个项目进入listview

我没有从调试器中得到任何错误,只是“不幸的是,应用程序1已停止”,这使我很难找出我做错了什么

这是我的密码:

public class Activity1 : Activity
{
    List<string> items = new List<string>();
    ArrayAdapter<string> adaptor;
    protected override void OnCreate(Bundle bundle)
    {
        base.OnCreate(bundle);

        SetContentView(Resource.Layout.Main);
        int i = 0;

        items.Add("Hello world");
        adaptor = new ArrayAdapter<string>(this,
            Resource.Id.listView1,
            items);

        Button button = FindViewById<Button>(Resource.Id.button1);
        ListView listView = FindViewById<ListView>(Resource.Id.listView1);
        listView.SetAdapter(adaptor);

        button.Click += delegate
        {
            items.Add("Hello " + ++i);
            adaptor.NotifyDataSetChanged();
        };
    }
}
这是Resource.Designer.cs中listview的ID

public const int listView1 = 2131034115;
listview声明如下:

    <ListView
        p1:minWidth="25px"
        p1:minHeight="25px"
        p1:layout_width="wrap_content"
        p1:layout_height="fill_parent"
        p1:id="@+id/listView1"
        p1:layout_marginBottom="70dp" />


在阅读了文档之后,我找到了答案。在实例化ArrayAdapter时,必须引用Android.Resource.Layout.SimpleListItem1或其他列表项资源,而不是listview本身来实例化它。

我对这段代码也有同样的问题:

mForecastAdapter =
    new ArrayAdapter<String>(
                    this,
                    android.R.layout.mymain,
                   R.id.list_view_forecast, 
                    foreCastArray
    );
mForecastAdapter=
新阵列适配器(
这
android.R.layout.mymain,
R.id.list\u view\u forecast,
前庭
);
读了你的帖子后,我把它改成:

 mForecastAdapter =
     new ArrayAdapter<String>(
                    this,
                    android.R.layout.simple_list_item_1,
                   // R.id.list_view_forecast, 
                    foreCastArray
     );
mForecastAdapter=
新阵列适配器(
这
android.R.layout.simple\u list\u item\u 1,
//R.id.list\u view\u forecast,
前庭
);

使用简单列表视图并删除列表视图id。这起作用。

作为调试参考:LogCat将准确地告诉您应用程序中的哪行代码导致了崩溃以及故障原因。。就像一个空指针。。索引超出范围。。等。这可在中的DDMS选项卡下找到eclipse@dymmeh谢谢,我不知道,是在VS中发现的。更接近问题的原因。
 mForecastAdapter =
     new ArrayAdapter<String>(
                    this,
                    android.R.layout.simple_list_item_1,
                   // R.id.list_view_forecast, 
                    foreCastArray
     );