博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
(四)适配器Adapter
阅读量:5064 次
发布时间:2019-06-12

本文共 5155 字,大约阅读时间需要 17 分钟。

只对简单应用进行描述。适配器与ListView配合使用可以快速生成item,效果如下例所示

一、简单模式

方式一

xml

java

package com.example.app03;import android.content.Context;import android.support.v7.app.AppCompatActivity;import android.os.Bundle;import android.widget.ArrayAdapter;import android.widget.ListView;import java.util.LinkedList;import java.util.List;public class MainActivity extends AppCompatActivity {    private List
mData = null; private Context mContext; private AnimalAdapter mAdapter = null; private ListView list_animal; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); //要显示的数据 String[] strs = {"AA","BB","CC","DD","EE","FF","GG","HH","II","JJ"}; //创建ArrayAdapter ArrayAdapter
adapter = new ArrayAdapter
(this,android.R.layout.simple_list_item_single_choice ,strs); //获取ListView对象,通过调用setAdapter方法为ListView设置Adapter设置适配器 ListView list_test = (ListView) findViewById(R.id.lv_test); list_test.setAdapter(adapter); }}

效果

 

方式二

创建ListText(即显示的item信息):选中Values-右键new-xml-values xml file,如下图所示。

在文件中添加如下内容,其中name即为此数据文件的标识,定义好此文件后方式一中的adapter也可以这样定义(此方法不需要下述代码)

ArrayAdapter
adapter = ArrayAdapter.createFromResource(this, R.array.ListText,android.R.layout.simple_list_item_multiple_choice );

 

item1
item2
item3

 

 xml

android:entries="@array/ListText" 比方法一增加的一行,默认数据在ListText中

 直接运行即可如下效果

 

一、复杂模式

 先来一个效果图

1)准备三张图片

2)新建一个布局,xml文件如下

3)新建两个类:Animal动物类用来存储动物的图标,name和说说;AnimalAdapter类继承BaseAdapter

package com.example.app03;public class Animal{    private String aName;    private String aSpeak;    private int aIcon;    public Animal() {    }    public Animal(String aName, String aSpeak, int aIcon) {        this.aName = aName;        this.aSpeak = aSpeak;        this.aIcon = aIcon;    }    public String getaName() {        return aName;    }    public String getaSpeak() {        return aSpeak;    }    public int getaIcon() {        return aIcon;    }    public void setaName(String aName) {        this.aName = aName;    }    public void setaSpeak(String aSpeak) {        this.aSpeak = aSpeak;    }    public void setaIcon(int aIcon) {        this.aIcon = aIcon;    }}
package com.example.app03;import android.content.Context;import android.view.LayoutInflater;import android.view.View;import android.view.ViewGroup;import android.widget.BaseAdapter;import android.widget.ImageView;import android.widget.TextView;import java.util.LinkedList;public class AnimalAdapter extends BaseAdapter{    private LinkedList
mData; private Context mContext; public AnimalAdapter(LinkedList
mData, Context mContext) { this.mData = mData; this.mContext = mContext; } @Override public int getCount() { return mData.size(); } @Override public Object getItem(int position) { return null; } @Override public long getItemId(int position) { return position; } @Override public View getView(int position, View convertView, ViewGroup parent) { convertView = LayoutInflater.from(mContext).inflate(R.layout.animal_list,parent,false); ImageView img_icon = (ImageView) convertView.findViewById(R.id.iv_head); TextView txt_aName = (TextView) convertView.findViewById(R.id.tv_name); TextView txt_aSpeak = (TextView) convertView.findViewById(R.id.tv_says); img_icon.setBackgroundResource(mData.get(position).getaIcon()); txt_aName.setText(mData.get(position).getaName()); txt_aSpeak.setText(mData.get(position).getaSpeak()); return convertView; }}

4)MainActivity中代码

package com.example.app03;import android.content.Context;import android.support.v7.app.AppCompatActivity;import android.os.Bundle;import android.widget.ArrayAdapter;import android.widget.ListView;import java.util.LinkedList;import java.util.List;public class MainActivity extends AppCompatActivity {    private List
mData = null; private Context mContext; private AnimalAdapter mAdapter = null; private ListView list_animal; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); mContext = MainActivity.this; list_animal = (ListView) findViewById(R.id.lv_test); mData = new LinkedList
(); mData.add(new Animal("狗1", "我是狗1", R.drawable.aa)); mData.add(new Animal("狗2", "我是狗2", R.drawable.bb)); mData.add(new Animal("狗3", "我是狗3", R.drawable.cc)); mAdapter = new AnimalAdapter((LinkedList
) mData, mContext); list_animal.setAdapter(mAdapter); }}

 

原文链接:http://www.runoob.com/w3cnote/android-tutorial-adapter.html

 

转载于:https://www.cnblogs.com/llstart-new0201/p/9994467.html

你可能感兴趣的文章
Jquery ui widget开发
查看>>
更改git仓库地址
查看>>
有标号DAG计数 [容斥原理 子集反演 组合数学 fft]
查看>>
Recipe 1.4. Reversing a String by Words or Characters
查看>>
Rule 1: Make Fewer HTTP Requests(Chapter 1 of High performance Web Sites)
查看>>
sql注入
查看>>
「破解」Xposed强
查看>>
src与href的区别
查看>>
ABAP工作区,内表,标题行的定义和区别
查看>>
《xxx重大需求征集系统的》可用性和可修改性战术分析
查看>>
Python 中 创建类方法为什么要加self
查看>>
关于indexOf的使用
查看>>
【转】JS生成 UUID的四种方法
查看>>
英语单词
查看>>
centos6.8下安装matlab2009(图片转帖)
查看>>
Mongo自动备份
查看>>
求助大神!怎样批量删除数据库表中某个字段中同样的一段字符!
查看>>
VMWARE虚拟机无法访问的三种方法分析
查看>>
enq: SQ - contention
查看>>
cer证书签名验证
查看>>