Android BaseAdapter ListView (明星简介列表)

1、搭建布局

 1 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
 2     android:layout_width="match_parent"
 3     android:layout_height="match_parent" >
 4
 5     <ListView
 6         android:id="@+id/lv"
 7         android:layout_width="wrap_content"
 8         android:layout_height="match_parent" />
 9
10 </RelativeLayout>

activity_main.xml

 1 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
 2     android:layout_width="match_parent"
 3     android:layout_height="match_parent" >
 4
 5     <ImageView
 6         android:id="@+id/img"
 7         android:layout_width="wrap_content"
 8         android:layout_height="wrap_content"
 9         android:src="@drawable/ic_launcher" />
10
11     <LinearLayout
12         android:layout_width="wrap_content"
13         android:layout_height="wrap_content"
14         android:layout_margin="10dp"
15         android:layout_toRightOf="@id/img"
16         android:orientation="vertical" >
17
18         <TextView
19             android:id="@+id/name"
20             android:layout_width="wrap_content"
21             android:layout_height="wrap_content"
22             android:textSize="24sp"
23             android:text="名称" />
24
25         <TextView
26             android:id="@+id/content"
27             android:layout_width="wrap_content"
28             android:layout_height="wrap_content"
29             android:layout_marginTop="10dp"
30             android:text="简介" />
31     </LinearLayout>
32
33 </RelativeLayout>

item_layout

2、建立一个明星类

 1 public class SuperStar {
 2     private int img;
 3     private String name;
 4     private String content;
 5
 6     public SuperStar(int img, String name, String content) {
 7         super();
 8         this.img = img;
 9         this.name = name;
10         this.content = content;
11     }
12     @Override
13     public String toString() {
14         return "SuperStar [ name=" + name + ", content=" + "]";
15     }
16     public int getImg() {
17         return img;
18     }
19     public void setImg(int img) {
20         this.img = img;
21     }
22     public String getName() {
23         return name;
24     }
25     public void setName(String name) {
26         this.name = name;
27     }
28     public String getContent() {
29         return content;
30     }
31     public void setContent(String content) {
32         this.content = content;
33     }
34
35
36 }

SuperStar.java

3、设置适配器

 1 public class MyBaseAdapter extends BaseAdapter{
 2
 3     private Context context;
 4     private List<SuperStar> list;
 5
 6     public MyBaseAdapter(Context context, List<SuperStar> list) {
 7         this.context = context;
 8         this.list = list;
 9     }
10
11     @Override
12     public int getCount() {
13         return list.size();
14     }
15
16     @Override
17     public Object getItem(int position) {
18         // TODO Auto-generated method stub
19         return null;
20     }
21
22     @Override
23     public long getItemId(int position) {
24         // TODO Auto-generated method stub
25         return 0;
26     }
27
28     @Override
29     public View getView(int position, View convertView, ViewGroup parent) {
30         ViewHolder viewHolder;
31         if(convertView == null){
32             convertView = View.inflate(context, R.layout.item_star, null);
33             viewHolder = new ViewHolder(convertView);
34             convertView.setTag(viewHolder);
35         }else{
36             viewHolder =  (ViewHolder) convertView.getTag();
37         }
38
39         //设置数据
40         viewHolder.img.setImageResource(list.get(position).getImg());
41         viewHolder.name.setText(list.get(position).getName());
42         viewHolder.content.setText(list.get(position).getContent());
43
44         return convertView;
45     }
46
47     class ViewHolder{
48         ImageView img;
49         TextView name;
50         TextView content;
51
52         public ViewHolder(View convertView) {
53             img = (ImageView) convertView.findViewById(R.id.img);
54             name = (TextView) convertView.findViewById(R.id.name);
55             content = (TextView) convertView.findViewById(R.id.content);
56         }
57     }
58
59 }

MyBaseAdapter

4、初始化数据

 1 public class MainActivity extends Activity {
 2
 3     ListView lv;
 4
 5     // 数据源
 6     String[] names = { "范冰冰", "杨幂", "张歆艺", "艾薇儿", "刘诗诗" };
 7     String[] contents = { "1981年9月16日生于山东青岛,华语影视女演员、歌手、制片人。毕业于上海师范大学谢晋影视艺术学院。",
 8             "中国女演员、歌手、电视剧制片人,出生于北京。毕业于北京电影学院表演系。",
 9             "中国内地女演员,出生于1981年5月29日,2005年毕业于中央戏剧学院表演系本科本。",
10             "1984年9月27日出生于加拿大安大略省,加拿大女歌手、词曲创作者、演员。",
11             "原名刘诗诗,中国内地影视女演员,出生于北京,毕业于北京舞蹈学院。" };
12
13     int[] imgs = { R.drawable.fanbb, R.drawable.yangmi, R.drawable.zhangxinyi,
14             R.drawable.avril, R.drawable.liushishi };
15
16     List<SuperStar> list = new ArrayList<SuperStar>();
17
18     @Override
19     protected void onCreate(Bundle savedInstanceState) {
20         super.onCreate(savedInstanceState);
21         setContentView(R.layout.activity_main);
22
23         initView();
24         lv = (ListView) findViewById(R.id.lv);
25
26         MyBaseAdapter adapter = new MyBaseAdapter(MainActivity.this, list);
27         lv.setAdapter(adapter);
28     }
29
30     private void initView() {
31         SuperStar fanbb = new SuperStar(R.drawable.fanbb, "范冰冰", "1981年9月16日生于山东青岛,华语影视女演员、歌手、制片人。毕业于上海师范大学谢晋影视艺术学院。");
32         list.add(fanbb);
33
34         SuperStar yangmi = new SuperStar(R.drawable.yangmi,"杨幂", "中国女演员、歌手、电视剧制片人,出生于北京。毕业于北京电影学院表演系。");
35         list.add(yangmi);
36
37         SuperStar zhangxinyi = new SuperStar(R.drawable.zhangxinyi, "张歆艺", "中国内地女演员,出生于1981年5月29日,2005年毕业于中央戏剧学院表演系本科本。");
38         list.add(zhangxinyi);
39
40         SuperStar avril = new SuperStar(R.drawable.avril, "艾薇儿", "1984年9月27日出生于加拿大安大略省,加拿大女歌手、词曲创作者、演员。");
41         list.add(avril);
42
43         SuperStar liushishi = new SuperStar(R.drawable.liushishi, "刘诗诗", "原名刘诗诗,中国内地影视女演员,出生于北京,毕业于北京舞蹈学院。");
44         list.add(liushishi);
45     }
46
47 }

MainActivity.java

时间: 2024-11-01 04:28:04

Android BaseAdapter ListView (明星简介列表)的相关文章

Android:ListView自动生成列表条目

activity_list.xml文件代码如下: 1 <?xml version="1.0" encoding="utf-8"?> 2 <LinearLayout 3 xmlns:android="http://schemas.android.com/apk/res/android" 4 android:orientation="vertical" 5 android:layout_width="f

Android 自定义 ListView 上下拉动&ldquo;刷新最新&rdquo;和&ldquo;加载更多&rdquo;歌曲列表

本文内容 环境 测试数据 项目结构 演示 参考资料 本文演示,上拉刷新最新的歌曲列表,和下拉加载更多的歌曲列表.所谓"刷新最新"和"加载更多"是指日期.演示代码太多,点击此处下载,自己调试一下. 下载 Demo 环境 Windows 2008 R2 64 位 Eclipse ADT V22.6.2,Android 4.4.3 SAMSUNG GT-I9008L,Android OS 2.2.2 测试数据 本演示的歌曲信息,共有 20 条,包括歌手名.歌曲名.时长.缩

android学习笔记——利用BaseAdapter生成40个列表项

RT: main.xml ? 1 2 3 4 5 6 7 8 9 10 11 12 <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"               android:orientation="vertical"        

android之ListView和BaseAdapter的组合使用

BaseAdapter是基本适配器,功能强大,凡是能用ArrayAdapter和SimpleAdapter解决的,都可以使用BaseAdapter解决. BaseAdapter是一个抽象类,所以需要自定义一个类来继承BaseAdapter.BaseAdapter中所必须重写的方法的意义: public int getCount():在此适配器中所代表的数据集中的条目数 public Object getItem(int position):获取数据集中与指定索引对应的数据项 public lon

android之ListView和adapter配合显示图片和文字列表

listView页面布局:layout/activity_main.xml: <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    xmlns:tools="http://schemas.android.com/tools"    android:layout_width="match_parent"    android:layout_hei

Android 自定义 ListView 显示网络歌曲列表

本文内容 环境 项目结构 演示自定义 ListView 显示网络歌曲列表 参考资料 本文最开始看的一个国人的文章,没有源代码,根据文中提供的源代码,自己新建的项目(最可气的是,没有图标图片资源,只能自己乱编),但程序不是很稳定,有时能显示出列表中的缩略图,有时显示不出来,还在主线程访问了网络.后看文章评论,作者给出英文原文链接,本来想这下没事了吧,结果下载源代码运行后,还是有问题~仔细看英文原文,原来他也是根据 Github 上一个项目的基础上搞的,只是添加了式样,以及显示完整的歌曲列表,包括歌

Android杂谈--ListView之BaseAdapter的使用

前言 话说开发用了各种Adapter之后感觉用的最舒服的还是BaseAdapter,尽管使用起来比其他适配器有些麻烦,但是使用它却能实现很多自己喜欢的列表布局,比如ListView.GridView.Gallery.Spinner等等.它是直接继承自接口类Adapter的,使用BaseAdapter时需要重写很多方法,其中最重要的当属getView,因为这会涉及到ListView优化等问题,其他的方法可以参考链接的文章 BaseAdapter与其他Adapter有些不一样,其他的Adapter可

我的Android进阶之旅------&gt;Android二级ListView列表的实现

实现如下图所示的二级列表效果 首先是在布局文件中,布局两个ListView,代码如下: <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="fill_parent" android:layout_height=&

我的Android进阶之旅------&amp;gt;Android二级ListView列表的实现

实现例如以下图所看到的的二级列表效果 首先是在布局文件里,布局两个ListView,代码例如以下: <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="fill_parent" android:layout_he