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的布局来实现的,感觉这样实现起来很方便(基本上一行代码就可以实现),而且也没有 ...
随机推荐
- Js 省市联动
function cn(){ this.Items = {}; } cn.prototype.add = function(id,iArray){ this.Items[id] = iArray; } ...
- strcmp在CTF中的案例
当strcmp比较出错的时候就会为null.null即为0故输出flag. strcmp(arr,str); ?test[]=1 <?php define('FLAG', 'pwnhub{THI ...
- cocos2dx迷你地图
用CCRenderTexture就可以了,不知是否有更好的方法. if (!miniMap) { miniMap=CCSprite::create(); miniMap->setZOrder() ...
- Android——UI和View——控制方式
控制方式 只用xml实现 <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns ...
- 利用U盘给Intel NUC安装CentOS
一,UltraISO(用来制作 U 盘启动) 需要新版9.6 下载地址为:http://www.onlinedown.net/soft/614.htm 软件注册码:王涛 7C81-1689-4046- ...
- datagrid.celltips.js
/** * Created with JetBrains WebStorm. * User: cao.guanghui * Date: 13-6-26 * Time: 下午11:27 * To cha ...
- jquery库实现iframe自适应内容高度和宽度
javascript原生和jquery库实现iframe自适应内容高度和宽度---推荐使用jQuery的代码! <iframe src="index.php" id=&qu ...
- C++ 友元类,友元函数
//友元函数 友元类 #include<iostream> using namespace std; class PointB { public: friend class PointC; ...
- 第二百七十节,Tornado框架-生成验证码图片,以及验证码结合Session验证
Tornado框架-生成验证码图片,以及验证码结合Session验证 第一.生成验证码图片 生成验证码图片需要两个必须模块 1.python自带的random(随机模块) 2.Pillow()图像处 ...
- javax.Servlet的包中,属于类的是。(选择1项)
javax.Servlet的包中,属于类的是.(选择1项) A.Servlet B.GenericServlet C.ServletRequest D.ServletContext 解答:B Serv ...