时间轴、物流信息。你根本不需要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;
        }
    }
}

目录
相关文章
【MFAC】基于全格式动态线性化的无模型自适应控制(Matlab代码)
【MFAC】基于全格式动态线性化的无模型自适应控制(Matlab代码)
|
SQL 机器学习/深度学习 自然语言处理
达梦(DM) SQL函数相关
讲述 DM 数据库函数
|
Android开发
【RecyclerView】 十四、GridLayoutManager 网格布局管理器 ( GridLayoutManager.SpanSizeLookup 指定 item 元素占用网格个数 )
【RecyclerView】 十四、GridLayoutManager 网格布局管理器 ( GridLayoutManager.SpanSizeLookup 指定 item 元素占用网格个数 )
1680 0
【RecyclerView】 十四、GridLayoutManager 网格布局管理器 ( GridLayoutManager.SpanSizeLookup 指定 item 元素占用网格个数 )
|
9月前
|
存储 关系型数据库 数据挖掘
【瑶池数据库动手活动及话题本周精选(体验ADB、 SelectDB,参与 RDS 迁移训练营)】(4.21-4.27)
本文为 “瑶池数据库动手活动及话题精选” 系列第一期,聚焦 SelectDB 日志分析、AnalyticDB Zero-ETL 集成、RDS 迁移训练营三大实战,设积分、实物等多重奖励,同步开启话题互动。点击链接参与,每周解锁数据库实战新场景。
|
3月前
|
UED
运营必看!1688大变天,您的流量为啥跑了?
近期,有1688商友反映,1688店铺流量下滑明显,以往稳定的流量格局似已一去不返。这背后的核心原因,是1688平台业务模式的全面升级。为助力1688商友破局,今天将深度解析1688变革后的核心要点,助您寻回失落的流量。
|
算法
记一次requests.get()返回数据乱码问题
【10月更文挑战第21天】使用`requests.get()`请求网页时遇到乱码问题,尝试通过设置`encoding`和使用`apparent_encoding`自动判断编码均无效。最终发现问题是由于请求头中的`Accept-Encoding`包含了`br`(Brotli压缩格式),导致响应内容未被正确解压。移除`Accept-Encoding`中的`br`后,问题得到解决。
470 7
|
10月前
|
机器学习/深度学习 自然语言处理 数据可视化
《自然语言处理架构的隐秘力量:FFN深度揭秘》
前馈神经网络(FFN)是自然语言处理(NLP)领域中不可或缺的组件,尤其在Transformer等架构中发挥重要作用。FFN通过非线性变换和特征提取,增强模型对复杂语义的理解能力,同时平衡注意力机制输出,提升泛化性能。其基本结构包括输入层、隐藏层和输出层,工作原理涉及加权求和与激活函数处理。尽管存在训练成本高和可解释性差等问题,未来的研究可能通过稀疏连接、动态计算等方式优化FFN,推动NLP技术进一步发展。
512 3
|
运维 监控 Linux
推荐几个不错的 Linux 服务器管理工具
推荐几个不错的 Linux 服务器管理工具
959 6
|
API Android开发
31. 【Android教程】状态栏通知:Notification
31. 【Android教程】状态栏通知:Notification
1576 1