Android常用控件:ListView(2)
来源:互联网 发布:零售超市收银软件 编辑:程序博客网 时间:2024/05/01 01:03
效果图:
ListView中每个Item(每一行)的布局:item_listview.xml
<?xml version="1.0" encoding="utf-8"?><RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:padding="@dimen/activity_horizontal_margin" > <ImageView android:id="@+id/item_image" android:layout_width="40dp" android:layout_height="40dp" android:src="@drawable/ic_launcher" /> <TextView android:id="@+id/item_content" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_below="@id/item_image" android:text="sdfsgdfhfgdh" /> <TextView android:gravity="center_vertical" android:id="@+id/item_title" android:layout_width="wrap_content" android:layout_height="40dp" android:layout_above="@id/item_content" android:layout_toRightOf="@id/item_image" android:text="ABC" /></RelativeLayout>
自定义ListView适配器:CustomAdapter.java
package com.example.csdn;import java.util.HashMap;import java.util.List;import android.content.Context;import android.view.LayoutInflater;import android.view.View;import android.view.ViewGroup;import android.widget.BaseAdapter;import android.widget.ImageView;import android.widget.TextView;/** * @author JiangYY * @date 2016年5月3日 上午10:06:36 * @description: TODO 自定义ListView适配器 */public class CustomAdapter extends BaseAdapter {private Context context;private List<HashMap<String, Object>> listItem;public CustomAdapter(Context context, List<HashMap<String, Object>> listItem) {super();this.context = context;this.listItem = listItem;}public List<HashMap<String, Object>> getListItem() {return listItem;}public void setListItem(List<HashMap<String, Object>> listItem) {this.listItem = listItem;}@Overridepublic int getCount() {return listItem == null ? 0 : listItem.size();}@Overridepublic Object getItem(int position) {return listItem.get(position);}@Overridepublic long getItemId(int position) {return position;}@Overridepublic View getView(int position, View convertView, ViewGroup parent) {ViewHolder viewHolder;if (convertView == null) {convertView = LayoutInflater.from(context).inflate(R.layout.item_listview, parent, false);viewHolder = new ViewHolder();findById(convertView, viewHolder);convertView.setTag(viewHolder);} else {viewHolder = (ViewHolder) convertView.getTag();}setListViewInfo(listItem, viewHolder, position);return convertView;}private class ViewHolder {private TextView tv_title, tv_content;private ImageView iv_image;}/** * 统一findVieById * * @param view * @param viewHolder */private void findById(View view, ViewHolder viewHolder) {viewHolder.iv_image = (ImageView) view.findViewById(R.id.item_image);viewHolder.tv_title = (TextView) view.findViewById(R.id.item_title);viewHolder.tv_content = (TextView) view.findViewById(R.id.item_content);}/** * 设置每个Item的值 * * @param listItem * 数据源 * @param viewHolder * @param position * Item的下标 */private void setListViewInfo(List<HashMap<String, Object>> listItem,ViewHolder viewHolder, int position) {viewHolder.iv_image.setImageResource(Integer.valueOf(listItem.get(position).get("ItemImage").toString()));viewHolder.tv_title.setText(listItem.get(position).get("ItemTitle").toString());viewHolder.tv_content.setText(listItem.get(position).get("ItemContent").toString());}}
布局文件:avtivity_main.xml
<merge xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" > <ListView android:id="@+id/listview" android:layout_width="match_parent" android:layout_height="match_parent" > </ListView></merge>
JAVA文件:MainActivity.java
package com.example.csdn;import java.util.ArrayList;import java.util.HashMap;import java.util.List;import android.app.Activity;import android.os.Bundle;import android.widget.ListView;public class MainActivity extends Activity {private ListView listview;private List<HashMap<String, Object>> listItem;private CustomAdapter customAdapter;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);findById();setListView();}private void findById() {listview = (ListView) findViewById(R.id.listview);}private void setListView() {setInfo();customAdapter = new CustomAdapter(this, listItem);listview.setAdapter(customAdapter);}private void setInfo() {listItem = new ArrayList<HashMap<String, Object>>();for (int i = 0; i < 10; i++) {HashMap<String, Object> map = new HashMap<String, Object>();map.put("ItemImage", R.drawable.ic_launcher);map.put("ItemTitle", "hello");map.put("ItemContent", "hello everyone~~~");listItem.add(map);}}}
0 0
- Android常用控件:ListView(2)
- Android常用控件:ListView
- Android常用控件-ListView
- Android常用控件:ListView(3)
- Android常用控件(二)【ProgressBar、ListView】
- Android常用控件之SimpleAdapter和ListView
- Android常用复杂控件使用(二)--ListView
- Android的常用基本控件ImageView、ListView
- Android常用控件之ListView(一)
- Android常用控件--ListView的简单使用
- Android常用控件之ListView(二)
- Android项目常用控件之ListView
- Android的ListView控件的常用适配器
- 常用控件之listview
- 常用控件之listview
- 2.常用控件:ListView
- Android常用控件2
- Android 常用控件2
- Programming Clojure笔记之二——探索Clojure
- 形态学操作
- android ListView 添加 HeaderView 和 FooterView时 不可选择点击
- [python] 优雅的操作字典
- 使用json协议传输二进制文件
- Android常用控件:ListView(2)
- mysql常用函数小结
- 原码, 反码, 补码 详解
- Java 并发工具包 java.util.concurrent 大全
- 大数据的处理方法<一>
- MongoDB简介
- AngularJs ui-router 路由的简单介绍
- 【HUSTOJ】1014: 三个数比大小
- sql统计表个数以及表中字段个数