/**
* 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适配器绑定数据方法的更多相关文章

  1. android ArrayAdapter BaseAdapter SimpleAdapter使用讲解

    不是我针对谁,我只想针对新手玩家. 不清楚Adapter作用的可以看一下http://www.cnblogs.com/zhichaobouke/p/5798672.html (括号里的内容都是我主观添 ...

  2. android data binding jetpack IV 绑定一个方法另一种写法和参数传递

    android data binding jetpack VIII BindingConversion android data binding jetpack VII @BindingAdapter ...

  3. [置顶] DataGridView控件---绑定数据方法

             DataGridView控件是在windows应用程中显示数据最好的方式,它只需要几行简短的代码就可以把数据显示给用户,同时又支持增.删.改操作.今天将自己总结的增加数据的方法总结分 ...

  4. android data binding jetpack III 绑定一个方法

    第三篇 给view绑定一下方法响应. (补充:1.被绑定的方法必须是public的.   1.绑定方法可以用主语法.也可以用以下双冒号方式“::” android:onClick="@{pr ...

  5. DataGridView 绑定数据方法

    DataGridView控件用于显示来自多种外部数据源中的数据,用户可以在此控件添加行和列,并可以填充数据.   如要让DataGridView显示数据库中的数据,只需要将此控件绑定到挑用数据库的数据 ...

  6. Android 使用BaseAdapter 插入不同类型数据

    在使用过程有时要在listview中插入不同类型的数据,比如说position=0的位置插入,广告,其它列表显示数据的情况. 一定要重写两种方法 @Override public int getIte ...

  7. Android ListView 之 SimpleAdapter 二 (包含 item 中按钮监听)

    1    MainActivity.java package com.myadapter; import java.util.ArrayList; import java.util.HashMap; ...

  8. 13.Android-ListView使用、BaseAdapter/ArrayAdapter/SimpleAdapter适配器使用

    1.ListView ListView 是 Android 系统为我们提供的一种列表显示的一种控件,使用它可以用来显示我们常见的列表形式.继承自抽象类 AdapterView.继承图如下所示: 以微信 ...

  9. Android之ListView性能优化——一行代码绑定数据——万能适配器

    如下图,加入现在有一个这样的需求图,你会怎么做?作为一个初学者,之前我都是直接用SimpleAdapter结合一个Item的布局来实现的,感觉这样实现起来很方便(基本上一行代码就可以实现),而且也没有 ...

随机推荐

  1. Java中path,-classpath,-Djava.library.path的功能和区别

    1. path path是个系统环境变量,声明命令的搜索路径,让操作系统找到指定的工具程序. D:\Program Files\Java\jdk1.8.0_111\bin指定JDK工具路径,例如jav ...

  2. yii2 beta版 执行流程

    yii2 beta版 执行流程 自动加载 1.composer的自动加载 //composer的加载实现了四种方式,可以看看 require(__DIR__ . '/../../vendor/auto ...

  3. 李洪强iOS开发之苹果企业开发者账号申请流程

    李洪强iOS开发之苹果企业开发者账号申请流程 一. 开发者账号类型选择 邓白氏码 DUNS number,是Data Universal Numbering System的缩写,是一个独一无二的9位数 ...

  4. CSS3背景总结

    值 描述 CSS background-color 规定要使用的背景颜色. 1 background-position 规定背景图像的位置. 1 background-size 规定背景图片的尺寸. ...

  5. Ubuntu打开core dump

    输入ulimit -a 如果core file size为0,那就说明没有打开core dump,尽管你的程序crash的时候会显示core dumped,但实际上不会生成core file 输入ul ...

  6. python学习笔记(2)--sublimeText3运行python

    https://www.zhihu.com/question/22904994 知乎用户 To the knowledge 74 人赞同 如果是想在sublime里要python shell那种交互或 ...

  7. chrome 控制台js调试与断点调试

        这篇文章是根据目前 chrome 稳定版(19.0.1084.52 m)写的,因为 google 也在不断完善chrome developer tool,所以 chrome 版本不同可能稍有差 ...

  8. 查看win10的激活信息和版本号

    在命令提示符里输入 cscript /nologo %Windir%\System32\slmgr.vbs /dli&&cscript /nologo %Windir%\System3 ...

  9. 关于Unity中调试C#的方法

    1.断点输出语句 在感觉有问题的地方的上下文写一些输出语句,如果控制台只有输出上文,没有输出下文,那么可以知道,上下文之间的语句有问题,因为下文没执行到,没有输出语句. Debug.Log(" ...

  10. Applet是java的自动执行方式(这是它的优势,主要用于HTML)

    进度条:ProgressBar. JcomboBox:下拉菜单:在AWT中同类组件是choice. JlistPanel:选择列表 BorderPanel:设置边框 JsplitPanel:可将容器分 ...