CSharp Android Xamarin SQL ListView

CSharp Android Xamarin SQL ListView

我正在尝试从 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;
                        }

For whatever reason the listView is only showing the last item.

因为在 while 中每次创建新的 Text 数组并传递给 ArrayAdapter 所以最后是数组数据显示在 ListView 中。

要显示 ListView 中的所有项目,请在 while 循环外创建 Adapter 对象并使用 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;