Android SmartTable根据int状态格式化文字及颜色

java 复制代码
private void initData() {
        List<UserInfo> list = new ArrayList<>();
        list.add(new UserInfo("一年级", "李同学", 6, 1, 120, 1100, 450, 0));
        list.add(new UserInfo("一年级", "张同学", 6, 2, 120, 1100, 450, 1));
        list.add(new UserInfo("一年级", "王同学", 7, 3, 120, 1100, 450, 2));
        list.add(new UserInfo("一年级", "闻同学", 7, 4, 120, 1100, 450, 0));
        list.add(new UserInfo("二年级", "李同学", 6, 5, 120, 1100, 450, 1));
        list.add(new UserInfo("二年级", "李同学", 6, 6, 120, 1100, 450, 2));
        list.add(new UserInfo("二年级", "李同学", 7, 7, 120, 1100, 450, 0));
        list.add(new UserInfo("二年级", "李同学", 7, 8, 120, 1100, 450, 1));
        list.add(new UserInfo("三年级", "李同学", 6, 9, 120, 1100, 450, 2));
        list.add(new UserInfo("三年级", "李同学", 6, 10, 120, 1100, 450, 0));
        list.add(new UserInfo("三年级", "李同学", 7, 11, 120, 1100, 450, 1));
        list.add(new UserInfo("三年级", "李同学", 7, 12, 120, 1100, 450, 2));


        Column cityColumn = new Column("班级", "class");
        cityColumn.setAutoMerge(true);
        Column nameColumn = new Column("姓名", "name");
        Column countColumn = new Column("年龄", "age");
        Column restaurantColumn = new Column("序号", "index");
        Column kaColumn = new Column("身高", "sg");
        Column wholesaleColumn = new Column("住址", "address");
        Column industryColumn = new Column("电话", "phone");
        Column otherColumn = new Column("状态", "state", new IFormat<Integer>() {
            @Override
            public String format(Integer state) {
                String str = "";
                if (state == 0) {
                    str = "未开始";
                } else if (state == 1) {
                     str = "进行中";
                } else if (state == 2) {
                     str = "已完成";
                }
                return str;
            }
        }, new IDrawFormat() {
            @Override
            public int measureWidth(Column column, int position, TableConfig config) {
                return 0;
            }

            @Override
            public int measureHeight(Column column, int position, TableConfig config) {
                return 0;
            }

            @Override
            public void draw(Canvas c, Rect rect, CellInfo cellInfo, TableConfig config) {
                Paint paint = config.getPaint();
                if (cellInfo.value.equals("未开始")) {
                    paint.setColor(ContextCompat.getColor(context, R.color.red));
                } else if (cellInfo.value.equals("进行中")) {
                    paint.setColor(ContextCompat.getColor(context, R.color.gray));
                } else if (cellInfo.value.equals("已完成")) {
                    paint.setColor(ContextCompat.getColor(context, R.color.colorPrimary));
                }
                paint.setStyle(Paint.Style.FILL);
                c.save();
                c.clipRect(rect);
                c.drawText(cellInfo.value, rect.right - 60, rect.bottom - 15, paint);
                c.restore();
            }
        });

        final TableData<UserInfo> tableData = new TableData<>("测试", list, cityColumn,
                nameColumn, countColumn, restaurantColumn, kaColumn, wholesaleColumn, industryColumn, otherColumn);

        table.setTableData(tableData);

    }
复制代码
com.github.huangyanbin:SmartTable:"2.2.0"
相关推荐
alexhilton2 小时前
Android车载OS中的Remote Compose
android·kotlin·android jetpack
落魄Android在线炒饭11 小时前
Android 自定义HAL开发篇之 HIDL篇——从入门到实战(上)
android
plainGeekDev12 小时前
广播接收器 → Flow + Lifecycle
android·java·kotlin
plainGeekDev12 小时前
EventBus → SharedFlow
android·java·kotlin
37手游移动客户端团队1 天前
招聘-高级安卓开发工程师
android·客户端
用户41659673693552 天前
WebView 请求异常排查操作手册
android·前端
Kapaseker2 天前
学不动了,入门 Compose Styles API
android·kotlin
墨狂之逸才2 天前
Android TV WebView 遥控器按键处理:从全透传到白名单
android
plainGeekDev2 天前
MVC 写法 → MVVM
android·java·kotlin
恋猫de小郭3 天前
Flutter Patchwork,不用 Fork 改依赖包源码的第三方工具
android·前端·flutter