Android 自定义Adapter的ListView
来源:互联网 发布:js before 编辑:程序博客网 时间:2024/05/17 15:20
一、ListView
一个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>
六、效果图
0 0
- 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
- 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
- [转载]Ogre中的内存泄露
- Hibernate,JPA 对象关系映射之关联关系映射策略
- gvim下的常识性知识
- Kinect V2 开发专题(3)设备信息获取与音频功能探索
- JavaScript与.Net MVC的一次纠结之旅
- Android 自定义Adapter的ListView
- ASP.NET的SqlBulkCopy用法
- 【网络组件】接受连接Acceptor
- Ubuntu14.04 32位上编译VLC2.2.0源码操作步骤
- 深入理解Apache Mina (1)---- Mina的几个类
- 线程
- [Windows编程] 通过GetModuleHandleEx 得到函数调用者所在的DLL/EXE
- android之子线程中Handler
- 定位Android NDK开发中遇到的错误