***BaseAdapter的基本使用
*自定义适配器的步骤:
1.定义子类继承BaseAdapter
2.需要重写自定义适配器中相应的函数
3.创建自定义适配器对象并使用
public class MainActivity extends Activity {
private ListView lv;
private List<String> list;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
lv = (ListView) findViewById(R.id.lv);
list = new ArrayList<String>();
for (int i = 1; i <= 10; i++) {
list.add("item"+i);
}
MyBaseAdapter adapter = new MyBaseAdapter();
lv.setAdapter(adapter);
}
/*使用内部类实现BaseAdapter*/
class MyBaseAdapter extends BaseAdapter{
@Override
public int getCount() { //表示当前适配器中加载的数据的总条目
return list.size();
}
@Override
public Object getItem(int position) { //根据指定下标获取对应item的View
return list.get(position);
}
@Override
public long getItemId(int position) { //表示根据指定下标获取当前item的id
return position;
}
/*
* getView()方法表示根据指定下标获取适配器控件中每个item对应的View对象(得到每个用于展示数据的item视图)
* int position:表示当前绘制的item的下标
* View convertView:表示可复用的view对象
* ViewGroup parent:表示当前绘制的item所属的listview控件
*/
@Override
public View getView(int position, View convertView, ViewGroup parent) {
//可直接通过构建控件显示
/*TextView tv = new TextView(MainActivity.this);
tv.setTextSize(25);
tv.setText(list.get(position));
return tv;*/
//也可通过先创建一个xml文件设置,但需要用到LayoutInflater布局加载器将xml文件转换为View对象
LayoutInflater inflater = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE);//获得布局填充器对象
View view = inflater.inflate(R.layout.item_test, null);//将list_view这个xml文件转换成view对象
TextView tv = (TextView) view.findViewById(R.id.tv);//获取list_test布局文件中的textview控件
tv.setText(list.get(position));
return view;
}
}
}