适配器的应用

1.实体类:

package com.example.adapter;

public class DangDang {
private String writers;
private int img;
private String price;
private String critical;
public String getWriters() {
return writers;
}
public void setWriters(String writers) {
this.writers = writers;
}
public int getImg() {
return img;
}
public void setImg(int img) {
this.img = img;
}
public String getPrice() {
return price;
}
public void setPrice(String price) {
this.price = price;
}
public String getCritical() {
return critical;
}
public void setCritical(String critical) {
this.critical = critical;
}
}

2.适配器配置

package com.example.adapter;

import java.util.ArrayList;

import com.example.adapter.NewsAdapter.ViewHolder;

import android.content.Context;
import android.media.Image;
import android.view.LayoutInflater;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.ImageView;
import android.widget.TextView;
import android.widget.Toast;

public class DangAdapter extends BaseAdapter {
private ArrayList<DangDang> mlist;
private Context mContext;

public DangAdapter(Context context, ArrayList<DangDang> mlist) {
super();
this.mlist = mlist;
this.mContext = context;
}

@Override
public int getCount() {

return this.mlist == null ? 0 : this.mlist.size();
}

@Override
public Object getItem(int position) {

return this.mlist.get(position);
}

@Override
public long getItemId(int position) {

return position;
}

@Override
public View getView(int position, View convertView, ViewGroup parent) {
ViewHolder holder = null;
if (convertView == null) {
LayoutInflater inflater = LayoutInflater.from(this.mContext);
convertView = inflater.inflate(R.layout.dangdang, null);
holder = new ViewHolder();
holder.writers = (TextView) convertView.findViewById(R.id.writers);
holder.img = (ImageView) convertView.findViewById(R.id.img);
holder.price = (TextView) convertView.findViewById(R.id.price);
holder.critical = (TextView) convertView
.findViewById(R.id.critical);
convertView.setTag(holder);
} else {
holder = (ViewHolder) convertView.getTag();
}
final DangDang dangdang = this.mlist.get(position);
// 绑定展示数据
holder.writers.setText(dangdang.getWriters());
holder.img.setImageResource(dangdang.getImg());
holder.price.setText(dangdang.getPrice());
holder.critical.setText(dangdang.getCritical());
holder.critical.setOnClickListener(new OnClickListener() {

@Override
public void onClick(View arg0) {
Toast.makeText(mContext, dangdang.getCritical(),
Toast.LENGTH_LONG).show();

}
});
return convertView;
}

public static class ViewHolder {
TextView writers;
ImageView img;
TextView price;
TextView critical;

}

}

3.activity:

public class DangActivity extends Activity{
private ListView listView;
private ArrayList<DangDang>myData=new ArrayList<DangDang>();
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
listView =(ListView) findViewById(R.id.mylist);
initMyData();
DangAdapter myAdapter=new DangAdapter(this,myData);
listView.setAdapter(myAdapter);
}
private void initMyData() {
DangDang dangdang=new DangDang();
dangdang.setWriters("《培根随笔》(英)弗兰西斯·培根 著, 吴昱荣 译/ 2013-06-01 / 中国华侨出版社");
dangdang.setImg(R.drawable.layer);
dangdang.setPrice("¥:30.0");
dangdang.setCritical("英国随笔文学的开山之作,黑格尔、雪莱、罗素等大师一致推崇的传世美文;诗意和哲思的完美结合,文笔优美、警句迭出; ★1985年被美国《生活》杂志评选为“人类有史以来的20种最佳书”之一;同年入选美国《优良读物指南》推荐书目。 ★《培根随笔》谈及了政治、经济、宗教、爱");
myData.add(dangdang);

dangdang=new DangDang();
dangdang.setWriters("《索罗河畔》(美)梭罗 著,田伟华 译/ 2010-12-01 / 中国三峡出版社");
dangdang.setImg(R.drawable.eecfd0d328203e8a15366658231c3174);
dangdang.setPrice("¥:30.0");
dangdang.setCritical("这是一本宁静、恬淡、充满智慧的书,语言优美,文字动人,见解精辟,耐人寻味,给人启迪。 ★经典珍藏本,美国自然文学的典范,当代美国读者最多的散文经典,与《圣经》诸书一同被美国国会图书馆评为“塑造读者的25本书”。 ★全世界数以万计的读者,海子心中的天堂生活,影响了托尔斯泰,圣雄甘地等人,从而改写了一些名族和国家的命运。 ★美国自然文学的典范,当代美国读者最多的散文经典,整个世界阅读和怀念的美国最好的书。 ★★★★★当当五星畅销图书 女人的修养与处世智慧全集(勒羽西、杨澜、徐静蕾倾情推荐!) 父与子全集(精装彩色珍藏版)(感动世界的父子真情,风靡全球70年,漫画世界最璀璨的明珠) 羊皮卷大全集(畅销珍藏本)(畅销几百年的成功圣经,全球畅销近10000000册,翻译成50多种语言,遍布全球150个国家和地区。) ◆◆◆◆◆当当更多热卖图书,请点击进入>>>>>");
myData.add(dangdang);
dangdang=new DangDang();
dangdang.setWriters("《源氏物语《〔日〕村上春树 著,施小炜 译/ 2010-06-01 / 南海出版社");
dangdang.setImg(R.drawable.e8d145de5ffdf97a4407ab4c5dd33513);
dangdang.setPrice("¥:30.0");
dangdang.setCritical("村上春树首次只写自己 ★村上春树专写“跑步” ★村上春树书写《1Q84》背后的故事 ★最不一样的村上文字 ★荣登日本“东贩”等畅销书排行榜首 ★如这般围绕一个主题,从正面书写自己,几乎从未有过。在长达四分之一个世纪里,日日都坚持跑步,各色各样的思绪从心底涌起…… 村上春树 ");
myData.add(dangdang);

}
}

其中涉及到两个xml文件,一个是activity_main.xml,

一个是dangdang.xml.

dangdang.xml:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<TextView
android:id="@+id/choose"
android:layout_width="match_parent"
android:layout_height="wrap_content"

android:textColor="#ff0000"/>

<TextView
android:id="@+id/writers"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@id/choose"
android:textColor="@color/selector_font_color"

android:text="百年孤独" />

<ImageView
android:id="@+id/img"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@id/writers" 

android:visibility="visible"/>

<TextView
android:id="@+id/price"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@id/img"
android:text=" 22.0" />

<TextView
android:id="@+id/critical"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@id/price"
android:text="顾客评分:3" />

</RelativeLayout>

actvity_main.xml:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context=".MainActivity" >

<ListView
android:id="@+id/mylist"
android:layout_width="match_parent"
android:layout_height="wrap_content" />

</RelativeLayout>
时间: 2024-09-29 02:58:58

适配器的应用的相关文章

Android——ListView布局+适配器(三)

Android--ListView布局+适配器(三) package com.example.administrator.newstop; import android.os.Bundle; import android.support.v4.view.ViewPager; import android.support.v7.app.AppCompatActivity; import android.util.Log; import android.view.View; import andro

Android——ListView多布局+适配器(二)

Android--ListView多布局+适配器(二) <span style="font-size:18px;">package com.example.administrator.newstop.entity; /** * Created by Administrator on 2016/8/4. */ public class News { private String title; private String pubDate; private int img; p

设计模式之Adapter(适配器)(转)

定义: 将两个不兼容的类纠合在一起使用,属于结构型模式,需要有Adaptee(被适配者)和Adaptor(适配器)两个身份. 为何使用? 我们经常碰到要将两个没有关系的类组合在一起使用,第一解决方案是:修改各自类的接口,但是如果我们没有源代码,或者,我们不愿意为了一个应用而修改各自的接口. 怎么办? 使用Adapter,在这两种接口之间创建一个混合接口(混血儿). 如何使用? 实现Adapter方式,其实"think in Java"的"类再生"一节中已经提到,有两

JAVA设计模式(DESIGN PATTERNS IN JAVA)读书摘要 第1部分接口型模式——第3章 适配器(Adapter)模式

客户端代码提供接口来写具体实现类时,要利用已经实现接口功能的现有类,但是接口的方法名和现有类的方法名不一致,则需要使用适配器模式. 接口适配 如图所示, RequiredInterface接口声明了Client类所要调用的requiredMethod()方法,ExistingClass的usefulMethod()提供了此方法的具体实现,但是这两个方法的名字不同,这要对ExistingClass进行适配.适配类NewClass继承ExistingClass类,实现了RequiredInterfa

使用stm32开发 USB_CAN 适配器测试

USB_CAN 适配器测试例程 采用CDC透传模式 一.简介 CAN总线无处不在,在设计开发中,到处需要用到CAN总线调试工具,本工具可以作为CAN的基础测试工具,用于监听CAN总线,或测试CAN数据收发.测试时,可以用两个板子,对接起来测试.即可实现如下介绍的功能. 二.接线图示意       三.开发测试环境 兼容系统:XP.WIN7 测试系统:XP 32bit(已验证) 开发工具:MDK 4.54 MCU型号:STM32F107VC(3.5版本固件库) 测试软件:stc-isp-15xx-

自定义ListView适配器

继承BaseAdapter类 覆盖以下4个方法: @Override public int getCount() { return users.size(); } @Override public Object getItem(int position) { return users.get(position); } @Override public long getItemId(int position) { return ((User)getItem(position)).getId();

C#之数据适配器:DataAdapter对象

在ADO.NET中,能够用于执行命令操作的不但有有Command对象,还有DataAdapter对象,DataAdapter对象执行查询的返回数据将存储在DataSet对象中. DataAdapter对象概述 DataAdapter对象是DataSet和数据之间的桥梁,可以建立并初始化数据表对数据源执行SQL指令,与DataSet对象结合,提供DataSet对象存储数据,可视为DataSet对象的操作核心. 在使用DataAdapter对象时,只需要设置表示SQL命令和数据库连接的两个参数,就可

适配器(GOF23)

---恢复内容开始--- 摘要:由于应用环境的变化,需要将现存的对象放到新的环境中去,但新环境的接口是现存对象不满足的. 意图:将原本接口不兼容的类通过转换,使得它们能够一起工作,复用现有的类 adapter和adaptee的关系 适配器一般分为:类适配器和组合适(对象)配器 推荐使用组合适配器,因为类适配器可能带来高的耦合 前期尽可能的面向接口去编程,后期可以更好的解耦

springmvc 前段控制器 处理器映射器 处理器适配器 视图视图解析器 配置

1. 前段控制器 新建项目在web.xml中配置前段控制器 <servlet> <servlet-name>springmvc</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <init-param> <param-name>contextConfigLocation</pa

Springmvc系列02 简单url处理器映射和另一个适配器

1.springmvc配置 <?xml version="1.0" encoding="UTF-8"?> <beans xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://www.springframework.org/schema/beans" xmlns:aop="http://www.springframewo