发布:2021/10/15 15:51:54作者:管理员 来源:本站 浏览次数:1081
使用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 + 1).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 = 1; i <= 20; i++)
{
person = new Person();
person.Id = i;
person.Name = "张三" + i.ToString();
person.IdCard = "20172619979999" + new Random().Next(1000, 10000).ToString();
person.Sex = new Random().Next(1, 3).ToString() == "1" ? "男" : "女";
person.Age = new Random().Next(15, 30).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