Xamarin Android开发控件之ListView展示数据

2025-07-10 08:19:23

1、//获取引用接口ItemInfos.ItemInfos itemInfo = new ItemInfos.ItemInfos(); //需要展示出来的数据集 我显示Name字段的 private List<Item> datas; //即将填充到的ListView ListView listView; protected override void OnCreate(Bundle bundle) { base.OnCreate(bundle); SetContentView(Resource.Layout.Layouts); //获取页面上的ListView listView = FindViewById<ListView>(Resource.Id.list); //获取接口数据返回Json格式 string item = itemInfo.GetItemInfo("1",UserInfo.GetUserInfo().WorkerId, UserInfo.GetUserInfo().ObjectType); //将Json转换成数据集 datas = JsonConvert.DeserializeObject<List<Item>>(item); //ListView 绑定自定义模版数据 listView.Adapter = new ItemListAdapter(this, datas); //ListView 点击事件 listView.ItemClick += listView_ItemClick; }void listView_ItemClick(object sender, AdapterView.ItemClickEventArgs e) { Toast.MakeText(this, "你选择了 " + datas[e.Position].Name, ToastLength.Short).Show(); }

2、//自定义模版类class ItemListAdapter : BaseAdapter<Item> { /// <稆糨孝汶;summary> /// 所有Item 的数据 /// </summary> List<Item> items; Activity context; //构造函数 public ItemListAdapter(Activity context, List<Item> items) : base() { this.context = context; this.items = items; } public override long GetItemId(int position) { return position; } public override Item this[int position] { get { return items[position]; } } public override int Count { get { return items.Count; } } /// <summary> /// 会循环执行这个方法 /// </summary> /// <param name="position"></param> /// <param name="convertView"></param> /// <param name="parent"></param> /// <returns></returns> public override View GetView(int position, View convertView, ViewGroup parent) { var item = items[position]; var view = convertView; if (view == null) { //使用自订Layout view = context.LayoutInflater.Inflate(Resource.Layout.ItemList,null); } view.FindViewById<TextView>(Resource.Id.tvName).Text = item.Name;//显示绑定的字段 return view; } }

3、------------------------------------------模版布局-------------------------<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent" android:minWidth="25px" android:minHeight="25px"> <ListView android:minWidth="25px" android:minHeight="25px" android:layout_width="fill_parent" android:layout_height="fill_parent" android:id="@+id/list" /></LinearLayout>

4、------------------------------页面布局------------颍骈城茇------------------------<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent"> <LinearLayout android:id="@+id/linearContainer" android:orientation="vertical" android:layout_width="wrap_content" android:layout_height="wrap_content" android:paddingLeft="10dip"> <TextView android:id="@+id/tvName" android:layout_width="wrap_content" android:layout_height="wrap_content" android:textColor="#CDFFE7" android:textSize="20dip" android:textStyle="italic" android:text="User's Name" /> </LinearLayout></LinearLayout>

声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢