app开发第二阶段第七天
作者:@kuaiquxie
作者的github:https://github.com/bitebita
本文为作者原创,如需转载,请注明出处:https://www.cnblogs.com/dzwj/p/16251397.html
今天写输入框的匹配模式,以及匹配模式配置对象
package com.linlang.grasharepro.utils.validation; import android.content.Context; /** * 匹配模式配置对象 * */ class PatternMeta<T> { final T pattern; final int messageId; String message; PatternMeta(T pattern, String message, int messageId) { this.pattern = pattern; this.message = message; this.messageId = messageId; } final void convertMessage(Context context){ if (messageId > 0){ message = context.getString(messageId); } } }
package com.linlang.grasharepro.utils.validation; import android.content.Context; import android.widget.TextView; import java.util.ArrayList; import java.util.Arrays; import java.util.List; /** * 输入框的匹配模式 * */ abstract class PatternInvoker<Patt, Meta> { protected final List<Patt> patterns = new ArrayList<>(); protected final Context context; public final TextView input; public final int viewId; protected PatternInvoker(Context context, int viewId, TextView input) { this.context = context; this.input = input; this.viewId = viewId; } /** * 添加匹配模式列表 * @param patterns 匹配模式列表 */ public final void addPatterns(Meta[] patterns){ for (Meta item : Arrays.asList(patterns)){ final Patt pattern = convert(item); if (!onFilter(pattern, item)){ this.patterns.add(pattern); } } } public final String dump(){ StringBuilder buf = new StringBuilder(input.toString()); buf.append('@').append(input.getHint()).append(':').append(input.getText()); buf.append("\n -> patterns:\n"); for (Patt pattern : patterns){ buf.append("\t").append(pattern.toString()).append(" ,\n"); } return buf.toString(); } /** * 校验输入 * @return 校验结果 */ public abstract Result performTest(); /** * 配置项过滤 * @param pattern 转换后的储存项 * @param item 配置项目 * @return 如果配置项手动排序,则返回True。否则返回False。 */ protected abstract boolean onFilter(Patt pattern, Meta item); /** * 将配置项 Meta 转换成储存项 P */ protected abstract Patt convert(Meta item); }
明天接着写关于数据处理相关的文件
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 上周热点回顾(3.3-3.9)
· AI 智能体引爆开源社区「GitHub 热点速览」