Android ArrayAdapter,BaseAdapter,SimpleAdapter适配器绑定数据方法
/**
* 2017-07-31.Book 类
*/ public class Book {
public String getName() {
return name;
} public void setName(String name) {
this.name = name;
} public String getAuthor() {
return author;
} public void setAuthor(String author) {
this.author = author;
} public double getPrice() {
return price;
} public void setPrice(double price) {
this.price = price;
} public Book(String name, String author, double price) {
super();
this.name = name;
this.author = author;
this.price = price;
} private String name;
private String author;
private double price;
}
<!--主xml中,需要用到的ListView-->
<ListView
android:id="@+id/List"
android:layout_width="wrap_content"
android:layout_height="wrap_content"></ListView>
<!--itemlist.xml文件,呈现数据的样式-->
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="horizontal"> <TextView
android:id="@+id/Author"
android:layout_width="wrap_content"
android:layout_height="wrap_content" /> <TextView
android:id="@+id/Name"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="20pt" /> <TextView
android:id="@+id/Price"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="20pt" /> </LinearLayout>
ArrayAdapter的绑定方法
public class MyMain extends Activity {
List<Book> list = new ArrayList<Book>();
ListView listView;
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//数据写入
GetListValue();
listView = (ListView) findViewById(R.id.List);
arrayAdapter dap=new arrayAdapter(this,list);
listView.setAdapter(dap);
}
private void GetListValue() {
list.add(new Book("第一行代码 Android 第2版", "郭霖", 57.60));
list.add(new Book("Android从入门到精通", "明日科技", 13.99));
list.add(new Book("疯狂Android讲义(第3版)", "李刚", 75.60));
list.add(new Book("Android开发艺术探索", "任玉刚", 67.20));
}
//重新构造ArrayAdapter
private class arrayAdapter extends ArrayAdapter<Book> {
public arrayAdapter(Context context, List<Book> books) {
super(context, 0, 0, books);
}
@NonNull
@Override
public View getView(int position, @Nullable View convertView, @NonNull ViewGroup parent) {
CheckInfo item;
View view = convertView;
if (view == null) {
view = LayoutInflater.from(MyMain.this).inflate(R.layout.itemlist, parent, false);
item = new CheckInfo(view);
view.setTag(item);
} else {
item = (CheckInfo) view.getTag();
}
Book book = list.get(position);
TextView tName = item.gettName();
TextView tPrice = item.gettPrice();
TextView tAuthor = item.gettAuthor();
tName.setText(book.getName());
tPrice.setText(book.getPrice() + "");
tAuthor.setText(book.getAuthor());
return view;
}
}
private class CheckInfo {
TextView tName;
TextView tAuthor;
TextView tPrice;
View view;
public CheckInfo(View view) {
this.view = view;
}
public TextView gettName() {
if (tName == null) {
tName = (TextView) view.findViewById(R.id.Name);
}
return tName;
}
public TextView gettAuthor() {
if (tAuthor == null) {
tAuthor = (TextView) view.findViewById(R.id.Author);
}
return tAuthor;
}
public TextView gettPrice() {
if (tPrice == null) {
tPrice = (TextView) view.findViewById(R.id.Price);
}
return tPrice;
}
}
}
SimpleAdapter的绑定方法
public class SimpleAdap extends Activity {
List<Book> list = new ArrayList<Book>();
ListView view;
List<Map<String, String>> maplist = new ArrayList<Map<String, String>>();
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
GetListValue();
for (Book b : list) {
Map<String, String> map = new HashMap<String, String>();
map.put("Author", b.getAuthor());
map.put("Name", b.getName());
map.put("Price", b.getPrice() + "");
maplist.add(map);
}
view = (ListView) findViewById(R.id.List);
SimpleAdapter adapter = new SimpleAdapter(
this,
maplist,
R.layout.itemlist,
new String[]{"Author", "Name", "Price"},
new int[]{R.id.Author, R.id.Name, R.id.Price}
);
view.setAdapter(adapter);
}
private void GetListValue() {
list.add(new Book("第一行代码 Android 第2版", "郭霖", 57.60));
list.add(new Book("Android从入门到精通", "明日科技", 13.99));
list.add(new Book("疯狂Android讲义(第3版)", "李刚", 75.60));
list.add(new Book("Android开发艺术探索", "任玉刚", 67.20));
}
}
BaseAdapter的绑定方法
public class BaseItem extends Activity {
List<Book> list=new ArrayList<Book>();
ListView listView;
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
GetListValue();
listView = (ListView) findViewById(R.id.List);
Baseadapter b = new Baseadapter();
listView.setAdapter(b);
}
private void GetListValue() {
list.add(new Book("第一行代码 Android 第2版", "郭霖", 57.60));
list.add(new Book("Android从入门到精通", "明日科技", 13.99));
list.add(new Book("疯狂Android讲义(第3版)", "李刚", 75.60));
list.add(new Book("Android开发艺术探索", "任玉刚", 67.20));
}
private class Baseadapter extends BaseAdapter {
@Override
public long getItemId(int position) {
return position;
}
@Override
public int getCount() {
return list.size();
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
CheckInfo c;
View view = convertView;
if (view == null) {
view = LayoutInflater.from(BaseItem.this).inflate(R.layout.itemlist, parent, false);
c = new CheckInfo(view);
view.setTag(c);
} else {
c = (CheckInfo) view.getTag();
}
Book book = list.get(position);
TextView name = c.gettName();
TextView price = c.gettPrice();
TextView author = c.gettAuthor();
name.setText(book.getName());
author.setText(book.getAuthor());
price.setText(book.getPrice() + "");
return view;
}
@Override
public Object getItem(int position) {
return position;
}
}
private class CheckInfo {
TextView tName, tAuthor, tPrice;
View view;
public CheckInfo(View v) {
view = v;
}
public TextView gettName() {
if (tName == null) {
tName = (TextView) view.findViewById(R.id.Name);
}
return tName;
}
public TextView gettAuthor() {
if (tAuthor == null) {
tAuthor = (TextView) view.findViewById(R.id.Author);
}
return tAuthor;
}
public TextView gettPrice() {
if (tPrice == null) {
tPrice = (TextView) view.findViewById(R.id.Price);
}
return tPrice;
}
}
}
Android ArrayAdapter,BaseAdapter,SimpleAdapter适配器绑定数据方法的更多相关文章
- android ArrayAdapter BaseAdapter SimpleAdapter使用讲解
不是我针对谁,我只想针对新手玩家. 不清楚Adapter作用的可以看一下http://www.cnblogs.com/zhichaobouke/p/5798672.html (括号里的内容都是我主观添 ...
- android data binding jetpack IV 绑定一个方法另一种写法和参数传递
android data binding jetpack VIII BindingConversion android data binding jetpack VII @BindingAdapter ...
- [置顶] DataGridView控件---绑定数据方法
DataGridView控件是在windows应用程中显示数据最好的方式,它只需要几行简短的代码就可以把数据显示给用户,同时又支持增.删.改操作.今天将自己总结的增加数据的方法总结分 ...
- android data binding jetpack III 绑定一个方法
第三篇 给view绑定一下方法响应. (补充:1.被绑定的方法必须是public的. 1.绑定方法可以用主语法.也可以用以下双冒号方式“::” android:onClick="@{pr ...
- DataGridView 绑定数据方法
DataGridView控件用于显示来自多种外部数据源中的数据,用户可以在此控件添加行和列,并可以填充数据. 如要让DataGridView显示数据库中的数据,只需要将此控件绑定到挑用数据库的数据 ...
- Android 使用BaseAdapter 插入不同类型数据
在使用过程有时要在listview中插入不同类型的数据,比如说position=0的位置插入,广告,其它列表显示数据的情况. 一定要重写两种方法 @Override public int getIte ...
- Android ListView 之 SimpleAdapter 二 (包含 item 中按钮监听)
1 MainActivity.java package com.myadapter; import java.util.ArrayList; import java.util.HashMap; ...
- 13.Android-ListView使用、BaseAdapter/ArrayAdapter/SimpleAdapter适配器使用
1.ListView ListView 是 Android 系统为我们提供的一种列表显示的一种控件,使用它可以用来显示我们常见的列表形式.继承自抽象类 AdapterView.继承图如下所示: 以微信 ...
- Android之ListView性能优化——一行代码绑定数据——万能适配器
如下图,加入现在有一个这样的需求图,你会怎么做?作为一个初学者,之前我都是直接用SimpleAdapter结合一个Item的布局来实现的,感觉这样实现起来很方便(基本上一行代码就可以实现),而且也没有 ...
随机推荐
- 安卓-APP安装后多个图标的解决
原因是在不同Activity的intent中配置了多个LAUNCHER. <intent-filter> <action android:name="android.int ...
- [elk]elasticsearch dashboard+保留10天内索引+导入导出备份
es dashboard 有两款 head 这款我一直在用 https://github.com/mobz/elasticsearch-head 先修改es的配置文件: elasticsearch.y ...
- 新建一个用户,让他只能看到某一个视图(View),如何设置
新建一个用户,让他只能看到某一个视图(View),怎么设置? 新建一个用户,让他只能看到某一个视图(View),怎么设置? 如果做不到“只能看到指定视图”,最好能做到“对指定表或视图只有查询的权限”. ...
- django admin 或xadmin 错误 总结
django管理界面admin搜索报错:TypeError: Related Field got invalid lookup: icontains 报错 TypeError: Related Fie ...
- 基于jQuery实现文字倾斜显示代码
这是一款基于jQuery实现文字倾斜显示,这是一款基于jQuery实现的超酷动态文字显示效果.适用浏览器:IE8.360.FireFox.Chrome.Safari.Opera.傲游.搜狗.世界之窗. ...
- C语言 · 复数四则运算
算法提高 6-17复数四则运算 时间限制:1.0s 内存限制:512.0MB 设计复数库,实现基本的复数加减乘除运算. 输入时只需分别键入实部和虚部,以空格分割,两个复数之间用运算符 ...
- 配置ubuntu - tftp server服务器步骤
配置Ubuntu tftp服务的步骤: 1.安装相关软件包:Ubuntu tftp(服务端),tftp(客户端),xinetd sudo apt-get install tftpd tftp xine ...
- 使用导出导入(datapump)方式将普通表切换为分区表
随着数据库数据量的不断增长,有些表须要由普通的堆表转换为分区表的模式. 有几种不同的方法来对此进行操作,诸如导出表数据,然后创建分区表再导入数据到分区表:使用EXCHANGE PARTITION方式来 ...
- 如何远程备份sql server数据库
方法一(不使用SQLDMO): /// ///备份方法 /// SqlConnection conn = new SqlConnection("Server=.;Database=mas ...
- UCASE() 函数
UCASE() 函数 UCASE 函数把字段的值转换为大写. SQL UCASE() 语法 SELECT UCASE(column_name) FROM table_name