BaseAdapter自定义适配器——思路详解

引言:

Adapter用来把数据绑定到扩展了AdapterView类的视图组。系统自带了几个原生的Adapter。

由于原生的Adapter视图功能太少,有时需要有自己的视图格式。并且在开发中经常用到。

 

实现效果:

BaseAdapter自定义适配器——思路详解

 

实现过程:

  1. 重写视图区域:

    即重写BaseAdapter

         有四方要重写:

public int getCount() 

数据域大小方法

public Object getItem(int arg0)

返回每个Item的数据据

public long getItemId(int arg0)

返回每个Item的ID

View getView(int arg0, View arg1, ViewGroup arg2)

最重要的是:重绘视图,调用次数是由第一个方法确定的。最后将视图返回。

注意:有些控件必须设置成没有获利焦点与点击。

这几个方法写的内容基本不变,具有参考价值。

2.重写数据区域使用ArrayList实现List。

先封装一个数据类,再将这个数据类装进List集合中。

这两个集合是很重要的,开发中是很常用的。但是《疯狂Java讲义》中讲的很少,但讲的很全。

3.绑定数据区域与视图区域

setListAdapter(MyAdapter);

注:MyAdapter是自定义的Adapter。

代码实现:

 JAVA代码:

MainActivity.java、MyAdapter.java、User.java、UserManger.java中

 1 package com.example.baseadapteriwrite;
 2 
 3 import java.util.ArrayList;
 4 
 5 import android.os.Bundle;
 6 
 7 import android.app.Activity;
 8 import android.app.ListActivity;
 9 import android.content.Context;
10 import android.view.Menu;
11 import android.widget.ListView;
12 
13 public class MainActivity extends ListActivity {
14 
15     private ArrayList<User> mList=null;
16     private Context context=null;
17     private ListView listView=null;
18     @Override
19     protected void onCreate(Bundle savedInstanceState) {
20         super.onCreate(savedInstanceState);
21         context=this;
22         listView=this.getListView();
23         mList=(ArrayList<User>) UserManger.getUserList();
24         MyAdapter adapter = new MyAdapter(context, mList);
25         
26         setListAdapter(adapter);
27     }
28     
29 
30     @Override
31     public boolean onCreateOptionsMenu(Menu menu) {
32         // Inflate the menu; this adds items to the action bar if it is present.
33         getMenuInflater().inflate(R.menu.main, menu);
34         return true;
35     }
36 
37 }
View Code

相关文章:

  • 2022-12-23
  • 2022-12-23
  • 2021-11-21
  • 2022-01-05
  • 2021-12-23
  • 2022-01-18
  • 2021-10-31
  • 2022-12-23
猜你喜欢
  • 2021-08-17
  • 2021-12-16
  • 2021-03-27
  • 2021-04-18
  • 2021-10-05
  • 2021-07-26
相关资源
相似解决方案