1, 1个书籍类
package com.example.t211_06;
public class Book {
private Integer id;
private String title;
private String author;
private Float price;
private String publish;
private String remark;
private int image;
public Book() {
super();
}
public int getImage() {
return image;
}
public void setImage(int image) {
this.image = image;
}
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}
public String getAuthor() {
return author;
}
public void setAuthor(String author) {
this.author = author;
}
public Float getPrice() {
return price;
}
public void setPrice(Float price) {
this.price = price;
}
public String getPublish() {
return publish;
}
public void setPublish(String publish) {
this.publish = publish;
}
public String getRemark() {
return remark;
}
public void setRemark(String remark) {
this.remark = remark;
}
}
2,书籍插入数据类
package com.example.t211_06;
import java.util.ArrayList;
import java.util.List;
public class BookDao {
private int[] bookImages = new int[] { R.drawable.book1, R.drawable.book2,
R.drawable.book3, R.drawable.book4, R.drawable.book5,
R.drawable.book6, R.drawable.book7, R.drawable.book8,
R.drawable.book9, R.drawable.book10 };
public List<Book> list() {
List<Book> list = new ArrayList<Book>();
for (int i = 1; i <= 1000; i++) {
Book b = new Book();
b.setId(i);
b.setTitle("t" + i);
b.setAuthor("a" + i);
b.setPrice(0.0f + i);
b.setPublish("p" + i);
b.setRemark("r" + i);
// 真实开发图片应该是从网络获取,而非本地获得
b.setImage(bookImages[i % bookImages.length]);
list.add(b);
}
return list;
}
}
3,1个资源xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity">
<ListView
android:id="@+id/lv_main_booklist"
android:layout_width="match_parent"
android:layout_height="match_parent" />
</LinearLayout>
4,布局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="wrap_content"
android:orientation="horizontal" >
<ImageView
android:id="@+id/iv_listviewitem_image"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="3"
android:padding="10dp"
android:scaleType="fitXY"
android:src="@drawable/book1" />
<LinearLayout
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="6"
android:orientation="vertical"
android:padding="10dp" >
<TextView
android:id="@+id/tv_listviewitme_title"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="狂人摄影日记"
android:textColor="@color/red"
android:textSize="20sp" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal" >
<TextView
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="2"
android:text="书本作者:"
android:textColor="@color/black" />
<TextView
android:id="@+id/tv_listviewitme_author"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="3"
android:text="阿刘" />
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal" >
<TextView
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="2"
android:text="书本价格:"
android:textColor="@color/black" />
<TextView
android:id="@+id/tv_listviewitme_price"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="3"
android:text="$123"
android:textColor="@color/black" />
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal" >
<TextView
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="2"
android:text=" 出版社:"
android:textColor="@color/black" />
<TextView
android:id="@+id/tv_listviewitme_publish"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="3"
android:text="电子出版社"
android:textColor="@color/black" />
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal" >
<TextView
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="2"
android:text="书本简介:"
android:textColor="@color/black" />
<TextView
android:id="@+id/tv_listviewitme_remark"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="3"
android:ellipsize="end"
android:maxLines="2"
android:text="很冷的一个冬天很冷的一个冬天很冷的一个冬天很冷的一个冬天很冷的一个冬天很冷的一个冬天很冷的一个冬天很冷的一个冬天很冷的一个冬天很冷的一个冬天"
android:textColor="@color/black" />
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="20dp"
android:orientation="horizontal" >
<ImageButton
android:id="@+id/bt_listviewitme_btn1"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginLeft="5dp"
android:layout_marginRight="5dp"
android:layout_weight="1"
android:src="@drawable/btn_shopping" />
<ImageButton
android:id="@+id/bt_listviewitme_btn2"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginLeft="5dp"
android:layout_marginRight="5dp"
android:layout_weight="1"
android:src="@drawable/btn_accounts" />
</LinearLayout>
</LinearLayout>
</LinearLayout>
5,开始敲代码
package com.example.t211_06;
import android.content.Context;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.ImageView;
import android.widget.ListView;
import android.widget.TextView;
import java.util.List;
public class MainActivity extends AppCompatActivity {
private List<Book> data;
private ListView lv_main_booklist;
private MyBaseAdapter Adapter;
//自定义适配器
public class MyBaseAdapter extends BaseAdapter{
public class viewHolder{//内部类
ImageView iv_listviewitem_image;
TextView tv_listviewitme_title;
TextView tv_listviewitme_author;
TextView tv_listviewitme_price;
TextView tv_listviewitme_publish;
TextView tv_listviewitme_remark;
}
private LayoutInflater inflater;//解析试图
//构造器
public MyBaseAdapter(LayoutInflater inflater) {
this.inflater = inflater;
}
@Override
public int getCount() {
return data.size();
}
@Override
public Object getItem(int position) {
return data.get(position);
}
@Override
public long getItemId(int position) {
return position;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
View v = convertView;
if(v==null){
Log.i("text",""+position);
v=inflater.inflate(R.layout.listview_item, null);
viewHolder vn=new viewHolder();
vn.iv_listviewitem_image=v.findViewById(R.id.iv_listviewitem_image);
vn.tv_listviewitme_title=v.findViewById(R.id.tv_listviewitme_title);
vn.tv_listviewitme_author=v.findViewById(R.id.tv_listviewitme_author);
vn.tv_listviewitme_price=v.findViewById(R.id.tv_listviewitme_price);
vn.tv_listviewitme_publish=v.findViewById(R.id.tv_listviewitme_publish);
vn.tv_listviewitme_remark=v.findViewById(R.id.tv_listviewitme_remark);
v.setTag(vn); //保存数据控件
}
//获取数据控件
viewHolder tag = (viewHolder) v.getTag();
//获取当前的数据,封装进实体类里面去
Book book = data.get(position);
tag.iv_listviewitem_image.setImageResource(book.getImage());
tag.tv_listviewitme_title.setText(book.getTitle());
tag.tv_listviewitme_author.setText(book.getAuthor());
tag.tv_listviewitme_price.setText(book.getPrice()+"");
tag.tv_listviewitme_publish.setText(book.getPublish());
tag.tv_listviewitme_remark.setText(book.getRemark());
return v;
}
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
lv_main_booklist=findViewById(R.id.lv_main_booklist);
//获取数据
data=new BookDao().list();
Adapter=new MyBaseAdapter((LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE));
lv_main_booklist.setAdapter(Adapter);
}
}
效果图: