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"
相关推荐
ujainu1 小时前
Flutter + OpenHarmony 网格布局:GridView 与 SliverGrid 在鸿蒙设备内容展示中的应用
android·flutter·组件
龙之叶2 小时前
【Android Monkey源码解析五】- 异常处理
android·数据库
明道源码2 小时前
Android Studio AVD 模拟器的使用与配置
android·android studio
学海无涯书山有路3 小时前
Android FragmentContainerView 新手详解(Java 版)
android·java·开发语言
上海控安3 小时前
Android生态中的SDK安全问题解析
android·安全
aidou13143 小时前
Android中自定义日期选择器样式DatePickerDialog
android·dialog·日期选择器·时间选择器·datepicker·自定义样式·timepicker
软件资深者3 小时前
全能图片缩略图显示工具,体积较大,直接显示AI,PSD,EPS,PDF,INDD,TIFF,CR2,RAW等格式缩略图的图像解码包
windows·microsoft·pdf·windows11·系统修复
建群新人小猿4 小时前
陀螺匠企业助手—个人简历
android·大数据·开发语言·前端·数据库
Mr Lee_6 小时前
attribute android:enableOnBackInvokedCallback not found
android
Jomurphys6 小时前
Compose - 使用 Reorderable
android