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的布局来实现的,感觉这样实现起来很方便(基本上一行代码就可以实现),而且也没有 ...
随机推荐
- utubu远程
http://www.linuxidc.com/Linux/2014-04/100491.htm 首先安装xfce: sudo apt-get update sudo apt-get install ...
- 使用vs2015编译器编译libpqxx时发生的错误以及解决办法
d:\libpqxx-4.0\libpqxx-4.0\src\strconv.cxx(195): error C2440: “=”: 无法从“std::basic_istream<char,st ...
- response.setHeader各种用法
一秒刷新页面一次 response.setHeader("refresh","1"); 二秒跳到其他页面 (登陆跳转) response.setHeader(& ...
- eclipse开发cocos2dx 3.2环境搭建之中的一个: Android C\C++环境搭建(ndk r9d)
这几天有时间,琢磨一下cocos2dx.cocos2d家族事实上挺庞大的.也有cocos2d-android这样的能够直接用Java语言来开发的,可是cocos2d-android资料相对少一些.并且 ...
- Mybatis批量更新<转>
Mybatis批量更新 批量操作就不进行赘述了.减少服务器与数据库之间的交互.网上有很多关于批量插入还有批量删除的帖子.但是批量更新却没有详细的解决方案. 实现目标 这里主要讲的是1张table中.根 ...
- 深度剖析ConcurrentHashMap(转)
概述 还记得大学快毕业的时候要准备找工作了,然后就看各种面试相关的书籍,还记得很多面试书中都说到: HashMap是非线程安全的,HashTable是线程安全的. 那个时候没怎么写Java代码,所以根 ...
- keepalive的作用
keepalive的作用是实现高可用,通过VIP虚拟IP的漂移实现高可用.在相同集群内发送组播包,master主通过VRRP协议发送组播包,告诉从主的状态. 一旦主挂了从就选举新的主,实现高可用 LV ...
- 获取checkbox 组成字符串
<input type="checkbox" id="goods_server_name" name="goods_server_name[]& ...
- Abstract可以将子类的共性最大限度的抽取出来,放在父类中,以提高程序的简洁性
Abstract可以将子类的共性最大限度的抽取出来,放在父类中,以提高程序的简洁性. Abstract虽然不能生成对象,但是可以声明,作为编译时类型,但不能作为运行时类型. Final和abstrac ...
- javascript -- 阻止默认事件 阻止事件冒泡
1. event.preventDefault(); -- 阻止元素的默认事件.注:a元素的点击跳转的默认事件 , button,radio等表单元素的默认事件 , div 元素没有默认事件 例: ...