我正在尝试从SQL查询中读取内容并将它们存储到listView(Android-C#)中。无论出于何种原因,listView仅显示最后一项。当我通过代码调试时,我看到它正在经历每个结果,但是,我无法让适配器显示所有结果。也许我在使用适配器时出错了。有任何想法吗?
代码:
while (rdr.Read ()) {
string[] Text = new string[] { (rdr[0])+ System.Environment.NewLine} ;
ListView mylistview = FindViewById<ListView> (Resource.Id.listView1);
var myAdapter = new ArrayAdapter(this, Android.Resource.Layout.SimpleListItem1 , Text);
mylistview.Adapter = myAdapter;
}
答案 0 :(得分:1)
无论出于何种原因,listView仅显示最后一项。
因为在while
每次创建新的Text
数组并传递给ArrayAdapter
时,所以最后是在ListView中显示数据数据。
要显示ListView
中的所有项目,请在while
循环之外创建适配器对象并使用ArrayList
,这将根据数据大小增长:
ArrayList listText = new ArrayList();
while (rdr.Read ()) {
listText.add((rdr[0])+ System.Environment.NewLine);
}
ListView mylistview = FindViewById<ListView> (Resource.Id.listView1);
var myAdapter = new ArrayAdapter(this,
Android.Resource.Layout.SimpleListItem1,listText);
mylistview.Adapter = myAdapter;