我有一个字符串数组,如下所示:
string[] uuids = new string[]{
fashionUUID,
foodUUID,
electricalUUID,
sportsUUID,
financeUUID,
homeGardenUUID,
hairUUID,
propertyUUID,
giftsUUID,
jewelleryUUID,
footwareUUID
和列表视图:
ListView uuidListView = FindViewById<ListView> (Resource.Id.uuidList);
然后我点击按钮时尝试在ListView中显示值。但是,我的listView永远不会填充任何内容。有人可以帮忙吗?
button.Click += (object sender, EventArgs e) =>
{
SetContentView (Resource.Layout.UUIDlist); //changes the layout
var adapter = new ArrayAdapter<string> (this, Resource.Id.uuidList, uuids);
};
我的包含listView的布局文件看起来像这样(非常简单):
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:p1="http://schemas.android.com/apk/res/android"
p1:orientation="vertical"
p1:minWidth="25px"
p1:minHeight="25px"
p1:layout_width="match_parent"
p1:layout_height="match_parent"
p1:id="@+id/linearLayout1">
<ListView
p1:minWidth="25px"
p1:minHeight="25px"
p1:layout_width="match_parent"
p1:layout_height="wrap_content"
p1:id="@+id/uuidList" />
</LinearLayout>
构建时我没有遇到任何错误,我的listView中没有显示任何内容。我也尝试过使用JavaList而不是字符串数组,但是我希望得到相同的结果。在构建/填充listview时,我是否遗漏了一些明显的东西?
答案 0 :(得分:0)
试试这个:
button.Click += (object sender, EventArgs e) =>
{
.......
ListView uuidListView = FindViewById<ListView> (Resource.Id.uuidList);
var adapter = new ArrayAdapter<string> (this, Resource.Id.uuidList, uuids);
uuidListView.Adapter = adapter;
};
答案 1 :(得分:0)
问题是ArrayAdapter
构造函数的第二个参数是布局文件的资源ID,其中包含在实例化视图时使用的布局而不是listview的ID({{ 1}})在屏幕布局中。
为简单起见,您可以重复使用内置布局,即uuidList
。
所以,在你的按钮点击事件中,它应该是这样的:
Android.Resource.Layout.SimpleListItem1
button.Click += delegate
{
var listview = FindViewById<ListView>(Resource.Id.uuidList);
var adapter = new ArrayAdapter(this, Android.Resource.Layout.SimpleListItem1,
Android.Resource.Id.Text1, uuids);
listview.Adapter = adapter;
};
是Android.Resource.Id.Text1
内的TextView
内容的ID。