Android listView SetAdapter在应用程序启动时导致崩溃
我正在玩Monodroid,试图在启动时为listview设置一个适配器。我在屏幕上有一堆控件,我试图做的是当点击按钮时,一个项目进入listview 我没有从调试器中得到任何错误,只是“不幸的是,应用程序1已停止”,这使我很难找出我做错了什么 这是我的密码: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
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
);