Android BaseAdapter ListView (明星简介列表)

时间:2021-09-08 20:45:53

Android  BaseAdapter  ListView  (明星简介列表)

 

1、搭建布局

Android  BaseAdapter  ListView  (明星简介列表)Android  BaseAdapter  ListView  (明星简介列表)
 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
Android  BaseAdapter  ListView  (明星简介列表)Android  BaseAdapter  ListView  (明星简介列表)
 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、建立一个明星类

Android  BaseAdapter  ListView  (明星简介列表)Android  BaseAdapter  ListView  (明星简介列表)
 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、设置适配器

Android  BaseAdapter  ListView  (明星简介列表)Android  BaseAdapter  ListView  (明星简介列表)
 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、初始化数据

Android  BaseAdapter  ListView  (明星简介列表)Android  BaseAdapter  ListView  (明星简介列表)
 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