使用ListView进行数据绑定

第一步:新建一个类,用于存储显示字段。

namespace ListViewDataBIndDemo
{
public class Person
{
public int Id { get; set; }
public string Name { get; set; }
public string IdCard { get; set; }
public string Sex { get; set; }
public string Age { get; set; }
}
}

第二步:在Mian.axml 中绘制界面

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent">
<LinearLayout
android:orientation="horizontal"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center"
android:layout_marginTop="10dp">
<TextView
android:text="姓名"
android:textSize="23sp"
android:layout_width="150dp"
android:layout_height="match_parent" />
<EditText
android:id="@+id/personName"
android:layout_width="280dp"
android:layout_height="wrap_content"
android:singleLine="true" />
</LinearLayout>
<HorizontalScrollView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_marginTop="10dp">
<LinearLayout
android:id="@+id/LinearLayoutdasb2"
android:layout_width="wrap_content"
android:orientation="vertical"
android:layout_height="match_parent">
<LinearLayout
android:id="@+id/LinearLayoutdasb3"
android:layout_width="wrap_content"
android:orientation="horizontal"
android:layout_height="27dp"
android:background="#C0C0C0">
<TextView
android:text="序号"
android:layout_width="50dp"
android:gravity="center"
android:textColor="#000000"
android:textSize="20sp"
android:layout_height="wrap_content" />
<TextView
android:text="姓名"
android:layout_width="100dp"
android:gravity="center"
android:textSize="20sp"
android:textColor="#000000"
android:layout_height="wrap_content" />
<TextView
android:text="身份证号"
android:layout_width="250dp"
android:gravity="center"
android:textSize="20sp"
android:textColor="#000000"
android:layout_height="wrap_content" />
<TextView
android:text="性别"
android:layout_height="wrap_content"
android:gravity="center"
android:textSize="20sp"
android:textColor="#000000"
android:layout_width="80dp" />
<TextView
android:text="年龄"
android:layout_width="80dp"
android:gravity="center"
android:textColor="#000000"
android:textSize="20sp"
android:layout_height="wrap_content" />
</LinearLayout>
<LinearLayout
android:id="@+id/LinearLayout54"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#FFFAF0">
<ListView
android:id="@+id/listViewPerson"
android:minWidth="30dp"
android:minHeight="30dp"
android:layout_width="550dp"
android:layout_height="match_parent"
android:divider="#000000"
android:dividerHeight="1dp" />
</LinearLayout>
</LinearLayout>
</HorizontalScrollView>
</LinearLayout>

第三步:创建一个 Person_Items.axml 用于存放数据

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="horizontal"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:padding="5dip">
<TextView
android:id="@+id/item_id"
android:layout_width="40dp"
android:layout_height="wrap_content"
android:textColor="#000000"
android:layout_marginLeft="20dp"
android:gravity="left"
android:textSize="20sp" />
<TextView
android:id="@+id/item_name"
android:layout_width="90dp"
android:layout_height="wrap_content"
android:textColor="#000000"
android:layout_marginLeft="20dp"
android:gravity="left"
android:textSize="20sp" />
<TextView
android:id="@+id/item_idcard"
android:layout_width="240dp"
android:layout_height="wrap_content"
android:textColor="#000000"
android:gravity="left"
android:layout_marginLeft="10dp"
android:textSize="20sp" />
<TextView
android:id="@+id/item_sex"
android:layout_width="70dp"
android:layout_height="wrap_content"
android:textColor="#000000"
android:gravity="left"
android:layout_marginLeft="10dp"
android:textSize="20sp" />
<TextView
android:id="@+id/item_age"
android:layout_width="70dp"
android:layout_height="wrap_content"
android:textColor="#000000"
android:gravity="left"
android:layout_marginLeft="10dp"
android:textSize="20sp" />
</LinearLayout>

第四步:创建一个继承于BaseAdapter的类名为ListViewAdapter

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text; using Android.App;
using Android.Content;
using Android.OS;
using Android.Runtime;
using Android.Views;
using Android.Widget; namespace ListViewDataBIndDemo
{
public class ListViewAdapter:BaseAdapter<Person>
{
Activity context;
public List<Person> mings; public ListViewAdapter(Activity context, List<Person> mings)
{
this.context = context;
this.mings = mings;
} public override int Count
{
get
{
return this.mings.Count;
}
} public override long GetItemId(int position)
{
return position;
} public override Person this[int position]
{
get
{
return this.mings[position];
}
} public override View GetView(int position, View convertView, ViewGroup parent)
{
var itme = this.mings[position]; convertView = LayoutInflater.From(context).Inflate(Resource.Layout.Person_Items, parent, false); TextView item_id = convertView.FindViewById<TextView>(Resource.Id.item_id);
TextView item_name = convertView.FindViewById<TextView>(Resource.Id.item_name);
TextView item_idcard = convertView.FindViewById<TextView>(Resource.Id.item_idcard);
TextView item_sex = convertView.FindViewById<TextView>(Resource.Id.item_sex);
TextView item_age = convertView.FindViewById<TextView>(Resource.Id.item_age); item_id.Text = (position + ).ToString();
item_name.SetText(itme.Name, TextView.BufferType.Normal);
item_idcard.SetText(itme.IdCard, TextView.BufferType.Normal);
item_sex.SetText(itme.Sex, TextView.BufferType.Normal);
item_age.SetText(itme.Age, TextView.BufferType.Normal); return convertView;
}
}
}

第五步:在MainActivity进行对数据绑定

using Android.App;
using Android.Widget;
using Android.OS;
using System.Collections.Generic;
using System; namespace ListViewDataBIndDemo
{
[Activity(Label = "ListViewDataBIndDemo", MainLauncher = true, Theme = "@android:style/Theme.Holo.Light")]
public class MainActivity : Activity
{
private List<Person> main_data = new List<Person>();
private Person person; ListView lv_Person;
EditText personName;
protected override void OnCreate(Bundle savedInstanceState)
{
base.OnCreate(savedInstanceState);
SetContentView(Resource.Layout.Main); lv_Person = FindViewById<ListView>(Resource.Id.listViewPerson);
personName = FindViewById<EditText>(Resource.Id.personName); for (int i = ; i <= ; i++)
{
person = new Person();
person.Id = i;
person.Name = "张三" + i.ToString();
person.IdCard = "" + new Random().Next(, ).ToString();
person.Sex = new Random().Next(, ).ToString() == "" ? "男" : "女";
person.Age = new Random().Next(, ).ToString();
main_data.Add(person);
}
lv_Person.Adapter = new ListViewAdapter(this, main_data); lv_Person.ItemClick += (s, e) =>
{
Toast.MakeText(this, "姓名:"+main_data[e.Position].Name +"\n身份证号:"+main_data[e.Position].IdCard, ToastLength.Long).Show();
}; //搜索姓名
personName.TextChanged += (s, e) =>
{
List<Person> per = selectList(main_data, personName.Text);
lv_Person.Adapter = new ListViewAdapter(this, per);
};
} private List<Person> selectList(List<Person> list, string value)
{
return list.FindAll(delegate (Person info)
{
if ((!string.IsNullOrEmpty(info.Name) && info.Name.Contains( value)))
{
return true;
}
else
{
return false;
}
});
}
}
}

效果图:

链接: https://pan.baidu.com/s/1MRQjgvAuY5M96cbBi895-g

密码: i4fh

Xamarin.Android 使用ListView绑定数据的更多相关文章

  1. Android ListView绑定数据

    ListView绑定数据的三层: ListView绑定数据源从逻辑上可以分为三层:UI层,逻辑层,数据层. UI层:UI层即是ListView控件. 数据层:要展示到ListView控件上面的数据. ...

  2. xamarin.android listview绑定数据及点击事件

    前言 listview是用来显示数据列表的一个控件,今天给大家带来如何使用cursor进行数据绑定以及点击事件. 导读 1.如何创建一个listview 2.如何使用cursor进行绑定数据 3.li ...

  3. Xamarin.Android之ListView和Adapter

    一.前言 如今不管任何应用都能够看到列表的存在,而本章我们将学习如何使用Xamarin去实现它,以及如何使用适配器和自定义适配器(本文中的适配器的主要内容就是将原始的数据转换成了能够供列表控件显示的项 ...

  4. Android之listview添加数据篇

    一.ListView: 1. ListView通常有两个职责: 1.向布局填充数据 2.处理选择点击等操作 2.ListView的创建需要3个元素: 1. ListView中的每一列的View. 2. ...

  5. Android之ListView分页数据加载

    1.效果如下: 实例如下:  上图的添加数据按钮可以换成一个进度条  因为没有数据所以我加了一个按钮添加到数据库用于测试:一般在服务器拉去数据需要一定的时间,所以可以弄个进度条来提示用户: 点击加载按 ...

  6. AlertDialog中使用ListView绑定数据

    在实际工作过程中,单单使用AlertDialog的单选功能不一定能满足我们的需求,需要绑定数据到 listview 1. 自定义Layout LayoutInflater factory = Layo ...

  7. 大叔也说Xamarin~Android篇~ListView里的Click事件并获取本行的其它元素

    回到目录 我原创,我贡献,我是仓储大叔 本篇大叔原创,本着对技术的热爱去研究它,把成果分享给国人!大叔始终相信一句话:你只有选择一个感兴趣的工作,你才能更好的发挥你的潜力,而这一切都建立在你不断研究, ...

  8. Android在ListView滑动数据混乱

    我相信做过Android应用程序开发或多或少都遇到了这个问题.或者是在ListView数据损坏幻灯片事件.要么GridView数据损坏幻灯片事件. 让我们来看看一个网友写的文章,个人感觉还不错的文章: ...

  9. Android 自定义ListView 修改数据

    当我们修改了 自定义ListView,如何更新界面上的控件呢? 两种方法: 1 重新绑定adapter (不推荐) Adapter_InboundPO adapter =(Adapter_Inboun ...

随机推荐

  1. python--第十天总结(Select/Poll/Epoll使用 )

    首先列一下,sellect.poll.epoll三者的区别 select select最早于1983年出现在4.2BSD中,它通过一个select()系统调用来监视多个文件描述符的数组,当select ...

  2. Python+Selenium学习--控制浏览器控制条

    场景 有时候web 页面上的元素并非直接可见的,就算把浏览器最大化,我们依然需要拖动滚动条才能看到想要操作的元素,这个时候就要控制页面滚动条的拖动,但滚动条并非页面上的元素,可以借助JavaScrip ...

  3. sqlserver2017 重装过程中出现“无法找到数据库引擎启动句柄”错误的解决办法

    sqlserver数据库引擎修改账号名,详情参考:http://blog.51cto.com/djclouds/2089047?utm_source=oschina-app 在SQL Server安装 ...

  4. 前后端跨域 _ cross domain

    1. 解决跨域既可以从前端, 也可以从后端. 参考好的网络资源: http://www.cnblogs.com/vajoy/p/4295825.html

  5. PHP 实现单链表

    数据结构是计算机存储.组织数据的方式,结构不同那么数据的检索方式和效率都不一样, 常用的数据结构有  数组 .栈 .队列 .链表 .树.堆 今天讲下单链表,单链表是一种链式存取的数据结构, 跟顺序链表 ...

  6. React-router4 第七篇 Recursive Paths 递归路径

    https://reacttraining.com/react-router/web/example/recursive-paths import React from 'react' import ...

  7. 学习STM32,你不得不了解的五大嵌入式操作系统

    学习STM32,你不得不了解的五大嵌入式操作系统                                                  原标题:学习STM32,你不得不了解的五大嵌入式操作 ...

  8. ABP框架系列之二:(Entity Framework Core-实体核心框架)

    Introduction(介绍) Abp.EntityFrameworkCore nuget package is used to integrate to Entity Framework (EF) ...

  9. boost-字符文本处理

    1.lexical_cast 一些常见的数值,字符互转函数: 整型int: itoa()._itoa_s atoi()._ttoi 无符号整型unsigned int: _ultoa_s()._ult ...

  10. drf6 权限和频率控制组件

    对某件事情决策的范围和程度,我们叫做权限,权限是我们在项目开发中非常常用到的. DRF框架给我们提供的权限组件 权限组件 之前DRF的版本和认证,知道了权限和频率跟版本认证都是在initial方法里初 ...