Android 對EditText進行攔截操作
輸入修改姓名時候,只能輸入漢字,字母,數字,並且最長只能輸入16個字元,數字字母算一個字元,漢字算兩個字元
重寫EditText對單次輸入的內容進行攔截判斷
public class LimitEditText extends EditText { public LimitEditText(Context context) { super(context); } public LimitEditText(Context context, AttributeSet attrs) { super(context, attrs); } public LimitEditText(Context context, AttributeSet attrs, int defStyleAttr) { super(context, attrs, defStyleAttr); // this.addTextChangedListener(this); } /** * 輸入法 * @param outAttrs * @return */ @Override public InputConnection onCreateInputConnection(EditorInfo outAttrs) { return new mInputConnecttion(super.onCreateInputConnection(outAttrs), false); } private int count; class mInputConnecttion extends InputConnectionWrapper implements InputConnection { public mInputConnecttion(InputConnection target, boolean mutable) { super(target, mutable); } /** * 對輸入的內容進行攔截 * * @param text * @param newCursorPosition * @return */ @Override public boolean commitText(CharSequence text, int newCursorPosition) { // 只能輸入漢字 if (!text.toString().matches("[\u4e00-\u9fa5]+") && !text.toString().matches("[a-zA-Z]+")&&!text.toString().matches("[0-9]")) { ToastUtil.ToastShow(getContext(),"只能輸入數字和字母和漢字"); return false; } tips(text.toString()); if(count>16){ ToastUtil.ToastShow(getContext(),"最多16個字元"); return false; } return super.commitText(text, newCursorPosition); } private void tips (String append){ count=0; String text=getText().toString(); for (int i=0;i<text.length();i++){ String a=String.valueOf(text.charAt(i)); if(a.matches("[\u4e00-\u9fa5]+")){ count=count+2; } else{ count=count+1; } } for (int i=0;i<append.length();i++){ String a=String.valueOf(append.charAt(i)); if(a.matches("[\u4e00-\u9fa5]+")){ count=count+2; } else{ count=count+1; } } } @Override public boolean sendKeyEvent(KeyEvent event) { return super.sendKeyEvent(event); } @Override public boolean setSelection(int start, int end) { return super.setSelection(start, end); } } }
提交時候正則判斷,只能有數字字母漢字
public boolean intputName(String name) { Pattern compile = Pattern.compile("[a-zA-Z0-9\u4e00-\u9fa5]*"); Matcher matcher = compile.matcher(name); if (matcher.matches()) { return true; } else { return false; } }
奇葩需求天天有
相關推薦
Android 對EditText進行攔截操作
輸入修改姓名時候,只能輸入漢字,字母,數字,並且最長只能輸入16個字元,數字字母算一個字元,漢字算兩個字元 重寫EditText對單次輸入的內容進行攔截判斷 public class LimitEditText extends EditText {
mono for android中使用dapper或petapoco對sqlite進行資料操作
在mono for android中使用dapper或petapoco,很簡單,新建android 類庫專案,直接把原來的檔案複製過來,對Connection連線報錯部分進行註釋和修改就可以運行了.(用可移植類庫PCL專案也可以的.) 如果需要原始碼可以聯絡我.10元收費哈.. 以下內容包括 1.在安卓中建
Struts2 攔截器中實現對資料進行資料庫操作
功能需求說明: 用攔截器的方式,攔截以.action結尾的類,同時記錄訪問的action名稱、action的包路徑、action後面帶的引數、操作者的ID、操作者的姓名、等其他資料。 吐槽點: 1.
Android對圖片進行平移,縮放,旋轉操作
package com.app.freestyle; import java.util.Arrays; import java.util.Collections; import java.util.List; import com.app.freestyle.R; i
Android對View進行全域性攔截處理
前言 當我們繼承AppCompatActivity時,會發現一些系統控制元件會被替換成v4包擴充套件過後的View,它是如何做到全域性攔截替換的呢,有時候我們也有一些需求,需要對某一型別的View進行統一操作。 LayoutInflater 原始碼分析
Java叠代器問題 有100個人圍成一個圈從1開始報數,報到14的這個人就要退出,然後其他人重新開始,從1報數,到14退出問:最後剩下的是100人中的第幾個人 用listIterator叠代元素,並對集合進行刪除操作
arraylist ger new println 集合 arr size 計數 add package com.swift; import java.util.ArrayList; import java.util.List; import java.util.Lis
關於java中需要對路徑進行分割操作時出現的異常
在工作中操作分割路徑時出現的問題 示例:String path = "C:\\Users\\Administrator.SC-201606041031\\Desktop\\test.txt"; 需要對該path進行分割操作則需要 String[] matchPaths = path.split
vue專案中傳送請求獲取到的資料渲染到介面之後無法對其進行DOM操作的問題
vue.js通常鼓勵開發人員沿著“資料驅動”的方式思考,避免直接接觸DOM。this.$nextTick()將回調延遲到下次DOM更新迴圈之後執行。在修改資料之後立即使用它,然後等待DOM更新。它跟全域性方法vue.nextTick一樣,不同的是回撥的this自動繫結到呼叫它的例項上。 &nbs
對資料庫進行插入操作
提交.jsp <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html> <html> <head&
javaweb:JDBC連線MYSQL資料庫詳解,使用JDBC對資料庫進行CRUD操作以及DAO模式的介紹
JDBC簡介: JDBC全稱為:Java DataBase Connectivity(java資料庫連線)。 SUN公司為了簡化、統一對資料庫的操作,定義了一套Java操作資料庫的規範,稱之為JDBC。 組成JDBC的2個包: 連結:https://pan
C#中無法對access進行Update操作
為何64位的.NET程式不能申請超過2G的空間c#winform文字框字元延時隱藏為何64位的.NET程式不能申請超過2G的空間c#winform文字框字元延時隱藏 C#如何解決修改登錄檔受限問題關於用C#解析Excel的疑問C#如何解決修改登錄檔受限問題關於用C#解析Exc
使用 aspectj 對 spark 進行攔截
文章目錄 背景 如何使用 程式碼 配置 結語 背景 開源產品要想用的得心應手免不了要根據公司的業務/場景對其做一些改造,如果直接在原始碼的層面對其修改,當下可能用的很省心,但後期與社群程式碼的
C#利用NPOI對Excel進行基本操作
C#利用NPOI操作Excel詳解 一、 下載npoi控制元件,並進行引用。 1.下載地址: 2.引用npoi (1)、下載後的npoi包括5個dll檔案: (2)、下載完成之後首先建立一個控制檯程式,然後在視圖裡面,調出解決方案資源管理器,點選“引用”>
springboot 自定義interceptor 對請求進行攔截
自定義interceptor package com.zhk.demo.interceptor; import org.springframework.web.servlet.HandlerInterceptor; import org.springframework.web
【pyTorch】torch下的網路如何對文字進行embedding操作
torch下的網路對文字進行embedding操作的程式碼示例如下: from torch import nn import torch from torch.nn import functional as F class TextNet(nn.Module):
通過Curl 對url進行encode操作
最近做專案的時候,通過 Gflags Reload 時候 發現對於某些value中包含=%中文等字元的支援不夠好,value被截斷了。 經過分析後,發現程式對url切分是用=&為標準的,如果value中帶有這樣的特殊字元,必然導致截斷。 解決的方法也很簡單,框架預設對value進行進行了urlde
js對日期進行格式化操作
JX_data(data) { //日期格式化過濾器 Date.prototype.format = function (fmt) { //author: meizz var o = { 'M+':
POI對Excel進行讀取操作,工具類,便於操作資料
一:首先POI對Excel 操作進行了一系列的封裝,匯入,匯出Excel這裡藉助於POI提供的jar包 專案當中匯入POI提供的Jar包,這裡使用Maven管理 進行匯入jar包 <!-- https://mvnrepository.c
對字串進行壓縮操作
a = 'abbccccddcccc' list1 = list(a) stra ="" flag = 0 q = 0 while 1: if flag == len(a): break for i in range(flag,
OpenCV對影象進行mask操作
這裡的mask操作指的是,對一幅影象image,有一個binary的mask影象,image_masked = image & mask 可以採用 Mat的copyTo成員函式,利用mask引數實現。 #include <opencv2/core/core.h