扩展BaseAdapter实现储存列表项ListView
BaseAdapter有着相对于其他的适配器更多的控制权和自定义权限。
首先在xml布局管理器中布局ListView列表,代码如下:
<ListView
android:id="@+id/list_base"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:divider="#990900"
android:dividerHeight="3dp"></ListView>
使用BaseAdapter:
/*实例化ListView的对象*/
ListView listview=(ListView)findViewById(R.id.list_base);
/*创建BaseAdapter对象同时继承重写相关的方法*/
BaseAdapter baseAdapter=new BaseAdapter() {
/*获取列表的目录数*/
@Override
public int getCount() {
return 50;
}
/*获取某个具体的item的内容*/
@Override
public Object getItem(int position) {
return null;
}
/*获取某个具体的item的ID*/
@Override
public long getItemId(int position) {
Log.e("getItemId",""+position);
return position;
}
/*返回某个具体的item的列表项组件*/
@Override
public View getView(int position, View convertView, ViewGroup parent) {
/*创建一个LinearLayout,同时向其中添加两个组件*/
LinearLayout line=new LinearLayout(MainActivity.this);
line.setOrientation(LinearLayout.HORIZONTAL);
ImageView image=new ImageView(MainActivity.this);
image.setImageResource(R.mipmap.ic_launcher);
TextView text=new TextView(MainActivity.this);
text.setText("第"+position+"个列表");
text.setTextColor(Color.BLUE);
text.setTextSize(20);
CheckBox checkBox=new CheckBox(MainActivity.this);
checkBox.setTextColor(Color.BLUE);
line.addView(image);
line.addView(text);
line.addView(checkBox);
/*返回实例*/
return layout;
}
};
listview.setAdapter(baseAdapter);
很简单不是吗?其中重写的多个放法可以在自定义ListView时使用,特别注意的是不要把最后一忘了对ListView对象添加适配器!
并不一定要在Java代码中控制ListView的Item布局,也可以在xml布局管理器中布局如下:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="match_parent"
android:layout_height="match_parent">
<TextView
android:id="@+id/item_list"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:text="列表item"
android:textSize="20dp"
android:textColor="#098898"/>
</LinearLayout>
在Java代码中引入布局文件即可:
LinearLayout layout=(LinearLayout)getLayoutInflater().inflate(R.layout.list_xml,null);
不足之处请谅解:QQ2915859312