AdapterView学习总结
- AdapterView继承ViewGroup,它的本质是一个容器
- AdapterView可以包括多个“列表项”,并将“列表项”以合适的形式表示出来
- AdapterView 显示多个“列表项”。调用AdapterView的setAdapter(Adapter)方法设置Adapter
*以下以adapterView的子类listView为例进行讲解*
AbsListView是AdapterView的一个子类,而ListView和GirdView是其的两个子类,所以ListView和GridView两者在用法上具有极大的相似性
@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_home); gvHome = (GridView) findViewById(R.id.gv_home); gvHome.setAdapter(new HomeAdapter()); }
//继承BaseAdapter后重写Adapter放啊
class HomeAdapter extends BaseAdapter {@Override public int getCount() { return mItem.length; } @Override public Object getItem(int position) { return mItem[position]; } @Override public long getItemId(int position) { return position; } @Override public View getView(int position, View convertView, ViewGroup parent) { View view = View.inflate(HomeActivity.this, R.layout.home_list_item, null); ImageView ivItem = (ImageView) view.findViewById(R.id.iv_item); TextView tvItem = (TextView) view.findViewById(R.id.tv_item); tvItem.setText(mItem[position]); ivItem.setImageResource(mPic[position]); return view; } }
代码分析及知识点总结
- 一般在使用适配器都是利用以上这种方法进行,因为BaseAdapter具有极大的扩展性,开发者可以根据自己的意愿去重写Adapter里面的方法。以实现相应的功能。
- 在重写的方法体内,需要实现的BaseAdapter的四个构造方法,其中第一个个第四个是最重要的。第一个是计算方法体内的值有多少。
- 第四个方法是根据位置去绘制图像。
总而言之
- 定义的ListView和GridView只是一个容器。这个容器里面可以装载列表项;
通过调用setAdapter的方法给容器当中装载需要的列表项。
gvHome.setAdapter(new HomeAdapter());
- 至于列表项当中需要装载什么样的内容,直接通过重写baseAdapter方法就好。