CSharp Android Xamarin SQL ListView

时间:2015-02-12 05:38:43

标签: c# android android-listview xamarin

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

1 个答案:

答案 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;