Xamarin.Android 使用ListView绑定数据
使用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绑定数据的更多相关文章
- Android ListView绑定数据
ListView绑定数据的三层: ListView绑定数据源从逻辑上可以分为三层:UI层,逻辑层,数据层. UI层:UI层即是ListView控件. 数据层:要展示到ListView控件上面的数据. ...
- xamarin.android listview绑定数据及点击事件
前言 listview是用来显示数据列表的一个控件,今天给大家带来如何使用cursor进行数据绑定以及点击事件. 导读 1.如何创建一个listview 2.如何使用cursor进行绑定数据 3.li ...
- Xamarin.Android之ListView和Adapter
一.前言 如今不管任何应用都能够看到列表的存在,而本章我们将学习如何使用Xamarin去实现它,以及如何使用适配器和自定义适配器(本文中的适配器的主要内容就是将原始的数据转换成了能够供列表控件显示的项 ...
- Android之listview添加数据篇
一.ListView: 1. ListView通常有两个职责: 1.向布局填充数据 2.处理选择点击等操作 2.ListView的创建需要3个元素: 1. ListView中的每一列的View. 2. ...
- Android之ListView分页数据加载
1.效果如下: 实例如下: 上图的添加数据按钮可以换成一个进度条 因为没有数据所以我加了一个按钮添加到数据库用于测试:一般在服务器拉去数据需要一定的时间,所以可以弄个进度条来提示用户: 点击加载按 ...
- AlertDialog中使用ListView绑定数据
在实际工作过程中,单单使用AlertDialog的单选功能不一定能满足我们的需求,需要绑定数据到 listview 1. 自定义Layout LayoutInflater factory = Layo ...
- 大叔也说Xamarin~Android篇~ListView里的Click事件并获取本行的其它元素
回到目录 我原创,我贡献,我是仓储大叔 本篇大叔原创,本着对技术的热爱去研究它,把成果分享给国人!大叔始终相信一句话:你只有选择一个感兴趣的工作,你才能更好的发挥你的潜力,而这一切都建立在你不断研究, ...
- Android在ListView滑动数据混乱
我相信做过Android应用程序开发或多或少都遇到了这个问题.或者是在ListView数据损坏幻灯片事件.要么GridView数据损坏幻灯片事件. 让我们来看看一个网友写的文章,个人感觉还不错的文章: ...
- Android 自定义ListView 修改数据
当我们修改了 自定义ListView,如何更新界面上的控件呢? 两种方法: 1 重新绑定adapter (不推荐) Adapter_InboundPO adapter =(Adapter_Inboun ...
随机推荐
- python定义类()中写object和不写的区别
这里需要说明一下: python3中,类定义默认继承object,所以写不写没有区别 但在python2中,并不是这样 所以此内容是针对python2的,当然python3默认继承,不代表我们就傻乎乎 ...
- Eclipse Android 模拟器启动过慢
打开AVD Manager窗口,在模拟器配置页面,选择Intel Atom (x86)选项.笔记本的CPU处理器是Intel 酷睿. 可以发现模拟器的启动速度明显变快.
- Django的rest_framework认证组件之局部设置源码解析
前言: Django的rest_framework组件的功能很强大,今天来我来给大家剖析一下认证组件 下面进入正文分析,我们从视图开始,一步一步来剖析认证组件 1.进入urls文件 url(r'^lo ...
- 394. Decode String 解码icc字符串3[i2[c]]
[抄题]: Given an encoded string, return it's decoded string. The encoding rule is: k[encoded_string], ...
- PHP+ajax实现二级联动
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- 手机服务器微架构设计与实现 之 http server
手机服务器微架构设计与实现 之 http server ·应用 ·传输协议和应用层协议概念 TCP UDP TCP和UDP选择 三次握手(客户端与服务器端建立连接)/四次挥手(断开连接)过程图 · ...
- 代码之髓读后感——名字&作用域&类型
名字和作用域 为什么要取名 看着代码中遍地都是的变量,函数,或多或少的我们都应该想过,为什么会有这些名字呢? 我们知道,计算机将数据存储到对应的物理内存中去.我们的操作就是基于数据的.我们需要使用这些 ...
- 游戏脚本编程 文本token解析
一个数字的组成由以下几个字符 正负号 + - 小数点 . 数字 0-9 比如 3 -3 3.13 -34.2234 但是符号和小数点不会出现多次 那么识别流程用图来表示 则是 整数 浮点数 一 ...
- 如何将JetBrains IDE 光标由块变为 |
1 设置中确认未勾选 2 安装了IdeaVim 插件,将其改为未选中状态,或者 ⌥ + ⌘ + v 将其关闭
- Java并发编程:volatile关键字
volatile这个关键字可能很多朋友都听说过,或许也都用过.在Java 5之前,它是一个备受争议的关键字,因为在程序中使用它往往会导致出人意料的结果.在Java 5之后,volatile关键字才得以 ...