android自定义listview格式动态更新显示数据测试
来源:互联网 发布:参合陂之战 知乎 编辑:程序博客网 时间:2024/05/16 04:38
package com.example.mylistview;import java.util.ArrayList;import java.util.HashMap;import java.util.List;import java.util.Map;import java.util.Timer;import java.util.TimerTask;import android.app.Activity;import android.content.Context;import android.os.Bundle;import android.os.Handler;import android.view.LayoutInflater;import android.view.View;import android.view.ViewGroup;import android.widget.BaseAdapter;import android.widget.Button;import android.widget.ImageView;import android.widget.ListView;import android.widget.TextView;public class MainActivity extends Activity {private int cnt = 0;private MyAdspter adapter;private Handler handler;private List<Map<String, Object>> list;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);ListView listView = (ListView) findViewById(R.id.list);list = new ArrayList<Map<String, Object>>();handler = new Handler(); adapter = new MyAdspter(this, list);listView.setAdapter(adapter);test();}private void test(){ new Timer().schedule(new TimerTask() { public void run() { cnt++;if(cnt <10){getData(cnt);Runnable updater = new Runnable() { public void run() { ((BaseAdapter) adapter).notifyDataSetChanged(); } }; handler.post(updater); }}; }, 0, 3000); } public void getData(int i) {Map<String, Object> map = new HashMap<String, Object>();map.put("image", R.drawable.ic_launcher);map.put("title", "这是标题" + i);map.put("info", "这是一个详细详细信息" + i);list.add(map);}}class MyAdspter extends BaseAdapter {private List<Map<String, Object>> data;private LayoutInflater layoutInflater;public MyAdspter(Context context, List<Map<String, Object>> data) {this.data = data;this.layoutInflater = LayoutInflater.from(context);}public final class ComponentView {public ImageView image;public TextView title;public Button view;public TextView info;}@Overridepublic int getCount() {return data.size();}@Overridepublic Object getItem(int position) {return data.get(position);}@Overridepublic long getItemId(int position) {return position;}@Overridepublic View getView(int position, View convertView, ViewGroup parent) {ComponentView cv = null;if (convertView == null) {cv = new ComponentView();convertView = layoutInflater.inflate(R.layout.list, null);cv.image = (ImageView) convertView.findViewById(R.id.image);cv.title = (TextView) convertView.findViewById(R.id.title);cv.view = (Button) convertView.findViewById(R.id.view);cv.info = (TextView) convertView.findViewById(R.id.info);convertView.setTag(cv);} else {cv = (ComponentView) convertView.getTag();}cv.image.setBackgroundResource((Integer) data.get(position).get("image"));cv.title.setText((String) data.get(position).get("title"));cv.info.setText((String) data.get(position).get("info"));return convertView;}}
布局:
<RelativeLayout 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:paddingBottom="@dimen/activity_vertical_margin" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" tools:context="com.example.mylistview.MainActivity" > <ListView android:id="@+id/list" android:layout_width="fill_parent" android:layout_height="fill_parent"> </ListView> </RelativeLayout>列表项布局:
<?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:background="#ffffff" android:orientation="vertical" > <LinearLayout android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="horizontal" > <ImageView android:id="@+id/image" android:layout_margin="5dp" android:layout_width="wrap_content" android:layout_height="wrap_content" /> <LinearLayout android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_weight="1" android:layout_marginTop="5dp" android:orientation="vertical" > <LinearLayout android:layout_width="fill_parent" android:layout_height="fill_parent"> <TextView android:id="@+id/title" android:layout_width="wrap_content" android:layout_height="wrap_content" android:textColor="#666872" /> </LinearLayout> <LinearLayout android:layout_width="fill_parent" android:layout_height="fill_parent" > <TextView android:id="@+id/info" android:layout_width="wrap_content" android:layout_height="wrap_content" android:textColor="#666872" android:textSize="10dp" /> </LinearLayout> </LinearLayout> <LinearLayout android:layout_width="wrap_content" android:layout_height="wrap_content" android:gravity="right" > <Button android:id="@+id/view" android:layout_width="wrap_content" android:layout_height="fill_parent" android:layout_centerVertical="true" android:layout_marginTop="7dp" android:layout_marginRight="8dp" android:text="详细" /> </LinearLayout> </LinearLayout></LinearLayout>效果:
0 0
- android自定义listview格式动态更新显示数据测试
- Android: ListView动态更新数据
- Android 自定义Adapter动态更新ListView视图
- Android操作数据的动态更新ListView
- Listview动态更新数据
- 【Android】动态更新ListView
- 【Android】动态更新ListView
- android listView更新数据
- android listview更新数据
- ListView的动态更新数据
- Android开发中ListView数据更新显示的解决方法
- Android 自定义Adapter 但listview 只显示第一条数据
- android之listview无数据时显示自定义view
- Android 自定义ListView只显示第一条数据的问题
- Android中动态更新ListView
- Android中动态更新ListView
- Android中动态更新ListView
- Android中动态更新ListView
- mysql安装
- Kaggle课程 | lecture 1 机器学习算法、工具与流程概述
- 【MyBatis学习01】宏观上把握MyBatis框架
- 洛谷P1433 吃奶酪
- 编程练习三
- android自定义listview格式动态更新显示数据测试
- <LearnWLS> A shell script to create a simple Session EJB
- C++之前置声明的应用与陷阱详解
- Android属性allowBackup安全风险
- QString::number的double型位数保留
- MATLAB的通信mex编译问题及解决方法
- 通过 WSL在Windows下愉快的玩耍Linux
- spring mvc4集成tiles3
- Bootstrap学习笔记(六)导航条、分页导航