时间轴、物流信息。你根本不需要StepView

简介: 时间轴、物流信息。你根本不需要StepView

效果图:

image.png


代码很简单,也没什么难度


MainActivity.java



package com.yechaoa.timelinedemo;
import android.content.Context;
import android.graphics.Color;
import android.os.Bundle;
import android.support.v4.content.ContextCompat;
import android.support.v7.app.AppCompatActivity;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.ImageView;
import android.widget.ListView;
import android.widget.TextView;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
public class MainActivity extends AppCompatActivity {
    private ListView mListView;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        initView();
        initData();
    }
    private void initView() {
        mListView = (ListView) findViewById(R.id.listView);
    }
    private void initData() {
        List<Map<String, Object>> list = new ArrayList<>();
        Map<String, Object> map = new HashMap<>();
        map.put("title", "已签收 期待再次为您服务");
        map.put("time", "2017-08-14 11:21:58");
        list.add(map);
        map = new HashMap<>();
        map.put("title", "派件中 快递员** 123456789");
        map.put("time", "2017-08-14 11:21:58");
        list.add(map);
        map = new HashMap<>();
        map.put("title", "快件已到达 上海浦东集散中心");
        map.put("time", "2017-08-14 11:21:58");
        list.add(map);
        map = new HashMap<>();
        map.put("title", "快件已到达 上海虹桥集散中心");
        map.put("time", "2017-08-14 11:21:58");
        list.add(map);
        map = new HashMap<>();
        map.put("title", "苏州吴江大客户营业部 已发出");
        map.put("time", "2017-08-14 11:21:58");
        list.add(map);
        map = new HashMap<>();
        map.put("title", "包裹正在等待揽收");
        map.put("time", "2017-08-14 11:21:58");
        list.add(map);
        mListView.setAdapter(new TimeLineAdapter(this, list));
    }
    class TimeLineAdapter extends BaseAdapter {
        private Context context;
        private List<Map<String, Object>> list;
        private LayoutInflater inflater;
        public TimeLineAdapter(Context context, List<Map<String, Object>> list) {
            super();
            this.context = context;
            this.list = list;
        }
        @Override
        public int getCount() {
            return list.size();
        }
        @Override
        public Object getItem(int position) {
            return position;
        }
        @Override
        public long getItemId(int position) {
            return position;
        }
        @Override
        public View getView(int position, View convertView, ViewGroup parent) {
            TimeLineHolder viewHolder;
            if (convertView == null) {
                inflater = LayoutInflater.from(parent.getContext());
                convertView = inflater.inflate(R.layout.item_time_line, null);
                viewHolder = new TimeLineHolder();
                viewHolder.title = (TextView) convertView.findViewById(R.id.title);
                viewHolder.time = (TextView) convertView.findViewById(R.id.time);
                viewHolder.view0 = convertView.findViewById(R.id.view0);
                viewHolder.view4 = convertView.findViewById(R.id.view4);
                viewHolder.image = (ImageView) convertView.findViewById(R.id.image);
                convertView.setTag(viewHolder);
            } else {
                viewHolder = (TimeLineHolder) convertView.getTag();
            }
            //根据key获取value
            String titleStr = list.get(position).get("title").toString();
            viewHolder.title.setText(titleStr);
            String timeStr = list.get(position).get("time").toString();
            viewHolder.time.setText(timeStr);
            //第一个去掉上面的竖线,并设置颜色
            if (position == 0) {
                viewHolder.title.setTextColor(ContextCompat.getColor(context, R.color.colorPrimary));
                viewHolder.time.setTextColor(ContextCompat.getColor(context, R.color.colorPrimary));
                viewHolder.image.setImageDrawable(ContextCompat.getDrawable(context, R.drawable.shape_oval_primary));
                viewHolder.view0.setVisibility(View.INVISIBLE);
            } else {
                viewHolder.title.setTextColor(Color.GRAY);
                viewHolder.time.setTextColor(Color.GRAY);
            }
            //最后一个去掉底部的下划线
            if (position == list.size() - 1) {
                viewHolder.view4.setVisibility(View.INVISIBLE);
            } else {
                viewHolder.view4.setVisibility(View.VISIBLE);
            }
            return convertView;
        }
        class TimeLineHolder {
            private TextView title, time;
            private View view0, view4;
            private ImageView image;
        }
    }
}

目录
相关文章
|
2月前
|
前端开发 JavaScript 数据挖掘
浅谈游戏地图中位置实时更新的技术方案
浅谈游戏地图中位置实时更新的技术方案
45 1
|
11月前
|
数据管理 BI 定位技术
什么是数据地图、血缘分析和数据资产?
什么是数据地图、血缘分析和数据资产?
|
2月前
|
定位技术
uniapp实现地图电子围栏功能
uniapp实现地图电子围栏功能
132 0
|
2月前
|
监控 安全 5G
UWB人员精准定位系统源码,实现实时定位、人机料配对、物料标签配置、智慧调度、轨迹追踪
人员定位管理系统通过在厂区、车间部署UWB定位基站,实时采集人员、机具、物料上定位标签回传的位置信息数据,采用多维定位模式,精确定位人、机具、物料的实时位置,实现实时定位、人机料配对、物料标签配置、智慧调度、轨迹追踪、工时统计、区域物料统计、电子围栏等应用功能。
|
小程序 JavaScript 定位技术
微信小程序实现一键查询全国快递物流地图轨迹
通过本教程,用户可以输入快递单号,点击查询按钮,然后跳转到显示页面,在该页面上展示物流轨迹的地图信息。这个功能可以方便用户了解快递的实时位置和运输轨迹,提升用户体验和便利性。你可以根据实际需求进行扩展和优化,使其更适合你的小程序应用。
270 0
|
数据采集 数据可视化 数据挖掘
快递的旅行日记 - 深度挖掘快递物流地图轨迹查询API 的使用场景
全球化经济的不断发展使得快递业变得越来越重要,而快递物流地图轨迹查询 API 也因此应运而生。
229 0
快递的旅行日记 - 深度挖掘快递物流地图轨迹查询API 的使用场景
|
定位技术
程序人生 - 实时更新:你的定制防疫地图
程序人生 - 实时更新:你的定制防疫地图
143 0
|
安全 数据可视化 数据建模
疫情实时查询地图
第一财经商业数据中心(CBNData)根据官方权威的数据、利用三维数据可视化和GIS地图的技术、结合对数据建模、工作流程的理解,紧急开发出一套可用于全国疫情防控的疫情地图实时查询工具,免费开放给公众使用。
24337 0
疫情实时查询地图
|
搜索推荐 BI 定位技术
风控GPS平台-停留数据如何呈现个性化
以下的案列是从红将军GPS厂家旗下的5号风控平台作为一个演示的,这个演示是目前系统当中最完善,基于昨晚更新的报表数据。
1491 0