Android項目實戰(五十二):控制EditText輸入內容大小寫轉換

来源:https://www.cnblogs.com/xqxacm/archive/2018/12/10/10098200.html
-Advertisement-
Play Games

今日需求,EditText內容為一串字元串,要求將用戶軟鍵盤輸入的小寫字母在輸入的時候自動轉為大寫字母,反之亦然。 效果如下: 第一次做該需求,原先想法: 對於afterTextChanged回調方法里,對輸入的字元串進行大小寫轉換,結果失敗,因為每次轉換之後實際就再次回調該方法導致死迴圈。 最後解 ...


今日需求,EditText內容為一串字元串,要求將用戶軟鍵盤輸入的小寫字母在輸入的時候自動轉為大寫字母,反之亦然。

 

效果如下:

 

第一次做該需求,原先想法:

EditText.addTextChangedListener(new TextWatcher() {
            @Override
            public void beforeTextChanged(CharSequence s, int start, int count, int after) {
            }

            @Override
            public void onTextChanged(CharSequence s, int start, int before, int count) {
            }

            @Override
            public void afterTextChanged(Editable s) {
             // 對輸入後的內容進行二次處理              
        }
        });
    

對於afterTextChanged回調方法里,對輸入的字元串進行大小寫轉換,結果失敗,因為每次轉換之後實際就再次回調該方法導致死迴圈。

 

最後解決辦法:

EditText.setTransformationMethod(new ReplacementTransformationMethod() {
                @Override
                protected char[] getOriginal() {
                    char[] originalCharArr = { 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z' };
                    return originalCharArr;
                }

                @Override
                protected char[] getReplacement() {
                    char[] replacementCharArr = { 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z' };
                    return replacementCharArr;
                }
            });

 顯而易見,該方法是對編輯框內容進行轉換的操作。

 兩個字元數組,分別將對應位置的原始字元轉換為要求後的字元。

 


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 參考: http://www.cnblogs.com/yxwkf/p/5092589.html 1. 安裝包下載 下載地址:https://github.com/claudemamo/kafka-web-console/releases 目前最新是2.0.0版本 2.編譯安裝包 kafka web ...
  • 事務提交讀註意事項 語法:set transaction isolation level read committed。 資料庫預設的是兩個會話事務之間是提交讀。 READ COMMITTED指定語句不能讀取已由其他事務修改但尚未提交的數據。 這樣可以避免臟讀。 其他事務可以在當前事務的各個語句之間 ...
  • 本人微信公眾號,歡迎掃碼關註! HDFS概念及命令行操作 一、HDFS概念 1.1 概念 HDFS,它是一個文件系統,用於存儲文件,通過目錄樹來定位文件;其次,它是分散式的,由很多伺服器聯合起來實現其功能,集群中的伺服器有各自的角色。 HDFS的設計適合一次寫入,多次讀出的場景,且不支持文件的修改。 ...
  • 尤其是在學習的過程, 也是天天和資料庫打交道, 難免會有腦子短路的時候, 比如root密碼忘記了, 你說怎麼辦~~~, 沒關係, 往下看 mysql提供了一種跳過用戶認證的配置, 參數, 你配置上這個參數後, 就可以不驗證直接登進資料庫.. 修改配置文件 以Linux為例, mysql的配置文件一般 ...
  • 現mysql中有一張表php_user表,表結構為: 表中數據有: 現在想查詢出來不同學生的語數外成績在一行顯示,那麼需要用到行轉列的用法, 一、行轉列 1、使用case...when....then 進行行轉列MAX(case when 條件 then 列內容 else 不匹配時顯示內容 end) ...
  • Mysql 多主一從數據備份 概述 對任何一個資料庫的操作都自動應用到另外一個資料庫,始終保持兩個資料庫中的數據一致。 這樣做有如下幾點好處: 1. 可以做災備,其中一個壞了可以切換到另一個。 2. 可以做負載均衡,可以將請求分攤到其中任何一臺上,提高網站吞吐量。 對於異地熱備,尤其適合災備。 My ...
  • 一,Xcode-->Preferences >Key Bindings. 參考資料:《Xcode實戰開發》 ...
  • 今天繼續學習flutter,覺得這個優秀的東西,許多方面還需要完善,作為一個後來者,要多向別人學習。俗話說,“學無先後,達者為師”。今天呢,我又重新把flutter_boss這個項目代碼 從頭到腳看了一遍,併進行重構。 廢話不多說,展示出來分享給大家。本項目源碼已上傳GitHub,文末給出地址。 一 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...