Android 自定义Adapter的ListView
2015-04-03 16:23
531 查看
一、ListView
一个ListView的创建,需要两个必要的元素:
(1)Data source数据集
数据集里面存放我们需要显示的数据list,list里面什么都可以放,可以放基本类型,也可以放自己定义的数据类型。图片文字都可以。
(2)Adapter 适配器
适配器主要负责,把数据按照我们的需求装到ListView控件里。
二、数据集
(1)自己定义的数据
(2)从数据库或者WebApi获得数据
三、适配器
五、XML
1、activity_classifylistview
2、activity_classifylistview_item
3、activity_classifylistview_detail
六、效果图
一个ListView的创建,需要两个必要的元素:
(1)Data source数据集
数据集里面存放我们需要显示的数据list,list里面什么都可以放,可以放基本类型,也可以放自己定义的数据类型。图片文字都可以。
(2)Adapter 适配器
适配器主要负责,把数据按照我们的需求装到ListView控件里。
二、数据集
(1)自己定义的数据
private void getData() { itemList.add("粮食"); itemList.add("水果"); itemList.add("坚果"); detailList.add("粮食"); detailList.add("大米"); detailList.add("小米"); detailList.add("绿豆"); detailList.add("红豆"); detailList.add("黑豆"); detailList.add("薏米"); detailList.add("水果"); detailList.add("苹果"); detailList.add("香蕉"); detailList.add("葡萄"); detailList.add("橘子"); detailList.add("柚子"); detailList.add("西瓜"); detailList.add("橙子"); detailList.add("坚果"); detailList.add("花生"); detailList.add("核桃"); detailList.add("杏仁"); detailList.add("松子"); detailList.add("榛子"); detailList.add("白果"); detailList.add("莲子"); }
(2)从数据库或者WebApi获得数据
三、适配器
public class ClassifyListViewActivity extends Activity implements OnItemClickListener{
private Context context;
private ListView lv_ClassifyListView;
private List<String> itemList;
private List<String> detailList;
private ClassifyListViewAdapter adapter;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_classifylistview);
context=ClassifyListViewActivity.this;
initView();
initData();
}
private void initView()
{
lv_ClassifyListView=(ListView)findViewById(R.id.lv_ClassifyListView);
itemList=new ArrayList<String>();
detailList=new ArrayList<String>();
adapter=new ClassifyListViewAdapter(context,itemList,detailList);
lv_ClassifyListView.setAdapter(adapter);
lv_ClassifyListView.setOnItemClickListener(this);
}
private void initData()
{
getData();
adapter.notifyDataSetChanged();
}
private void getData() { itemList.add("粮食"); itemList.add("水果"); itemList.add("坚果"); detailList.add("粮食"); detailList.add("大米"); detailList.add("小米"); detailList.add("绿豆"); detailList.add("红豆"); detailList.add("黑豆"); detailList.add("薏米"); detailList.add("水果"); detailList.add("苹果"); detailList.add("香蕉"); detailList.add("葡萄"); detailList.add("橘子"); detailList.add("柚子"); detailList.add("西瓜"); detailList.add("橙子"); detailList.add("坚果"); detailList.add("花生"); detailList.add("核桃"); detailList.add("杏仁"); detailList.add("松子"); detailList.add("榛子"); detailList.add("白果"); detailList.add("莲子"); }
@Override
public void onItemClick(AdapterView<?> parent, View view, int position,
long id) {
String detail=(String) adapter.getItem(position);
Toast.makeText(context, detail, Toast.LENGTH_SHORT).show();
}
}
五、XML
1、activity_classifylistview
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical"> <ListView android:id="@+id/lv_ClassifyListView" android:layout_width="match_parent" android:layout_height="match_parent"> </ListView> </LinearLayout>
2、activity_classifylistview_item
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" android:background="@color/pink"> <TextView android:id="@+id/tv_ClassifyListView_item" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginLeft="8dp" android:textSize="16sp"> </TextView> </LinearLayout>
3、activity_classifylistview_detail
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" > <TextView android:id="@+id/tv_ClassifyListView_detail" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginLeft="16dp" android:textSize="14sp"> </TextView> </LinearLayout>
六、效果图
相关文章推荐
- Android中自定义Adapter实现ListView动态刷新进度条
- Android中自定义Adapter实现ListView动态刷新进度条
- [转载]Android之自定义Adapter的ListView
- Android之ListView与自定义adapter简单实例
- Android中ListView同过自定义布局并使用SimpleAdapter的方式实现数据的绑定
- android 学习笔记:自定义通用ListView/GridView,实现ListAdapter 类
- Android之自定义Adapter的ListView
- 【转】Android之自定义Adapter的ListView
- ANDROID中自定义ADAPTER实现LISTVIEW动态刷新进度条
- Android之自定义Adapter的ListView
- android 自定义adapter extends BaseAdapter,做有自己布局的listView
- Android之自定义Adapter的ListView
- Android之自定义Adapter的ListView
- Android之自定义Adapter的ListView
- Android之自定义Adapter的ListView
- Android中自定义Adapter实现ListView动态刷新进度条
- Android之自定义Adapter的ListView
- Android之自定义Adapter的ListView
- Android之自定义Adapter的ListView
- Android之自定义Adapter的ListView