Android EditText 的使用及值得注意的點——如如何遮蔽EditText的複製、貼上功能
Android上有很多輸入法應用,每種輸入法都有各自的特點,輸入法多數時候是和EditText配合使用,結合我自己的親身實踐分享一下使用EditText過程中遇到的一些問題及解決方法。
置預設輸入法
有時候為了提高使用者體驗,在彈出輸入法時需要設定預設的輸入狀態,比如單詞應用彈出輸入法時,輸入法最好是在英文輸入狀態下。如果是字典應用,彈出輸入法時最好是在中文輸入狀態下,Android並沒有提供設定預設的輸入狀態的介面,但我們可以通過如下方法一樣能夠達到想要的效果:
預設中文:
mEditText.setInputType(EditorInfo.TYPE_CLASS_TEXT);
mEditText.setInputType(EditorInfo.TYPE_CLASS_TEXT);
預設英文:
mEditText.setInputType(EditorInfo.TYPE_TEXT_VARIATION_URI);
開啟和關閉輸入法
手動控制輸入法的開關狀態也能提升使用者體驗,比如:
-
有的搜尋框會有一個清除按鈕,點選清除按鈕時就應該彈出輸入法,因為使用者清除搜尋內容的目的多數時候是需要輸入新的內容;
-
執行搜尋時應該隱藏輸入法,因為顯示輸入法時會遮擋搜尋結果,使用者體驗不太好;
-
鬧鐘來時或者有其它window彈出時應該隱藏輸入法,因為輸入法也是window,如果不隱藏可能導致輸入法遮擋住了其它window等使用者體驗不太友好的問題。
開啟輸入法:
privatevoidopen(Contextcontext,VieweditText){ InputMethodManagerinputMethodManager = (InputMethodManager)context.getSystemService(Context.INPUT_METHOD_SERVICE); inputMethodManager.showSoftInput(editText,0); }
關閉輸入法:
privatevoidclose(Contextcontext,VieweditText){
InputMethodManagerinputMethodManager = (InputMethodManager)context.getSystemService(Context.INPUT_METHOD_SERVICE);
inputMethodManager.hideSoftInputFromWindow(editText.getWindowToken(),0);
}
監聽EditText的輸入狀態
-
類似新浪微博,在輸入內容時會提示還可以輸入多少字;
-
有的搜尋引擎,輸入內容時實時顯示搜尋結果;
-
有的輸入框有輸入長度限制,輸入內容超過長度限制時彈出提示資訊。
上面這些都可以通過監聽EditText的輸入狀態來實現,具體實現方式如下:
mInputEditTxt.addTextChangedListener(newTextWatcher(){
@Override
publicvoidbeforeTextChanged(CharSequences,intstart,intcount,intafter){
}
@Override
publicvoidonTextChanged(CharSequences,intstart,intbefore,intcount){
System.out.println("監聽EditText輸入內容的變化,在這裡可以監聽輸入內容的長度。");
}
@Override
publicvoidafterTextChanged(Editables){
System.out.println("這裡可以實現所輸即所得,使用者輸入的同時可以立即在這裡根據輸入內容執行操作,顯示搜尋結果!");
}
});
監聽輸入法中的回車按鈕
比如搜狗輸入法的右下角有一個回車按鈕,我們希望使用者點選它時也執行確認功能,可以通過監聽EditText的按鍵點選事件來實現:
/**
* 監聽輸入法按鍵
*
* */
mInputEditTxt.setOnKeyListener(newOnKeyListener(){
@Override
publicbooleanonKey(Viewv,intkeyCode,KeyEventevent){
if(keyCode == KeyEvent.KEYCODE_ENTER && event.getAction() == KeyEvent.ACTION_UP){
System.out.println("手指彈起時執行確認功能");
returntrue;
}
returnfalse;
}
});
改變輸入法中回車按鈕的顯示內容
如果回車按鈕是執行搜尋功能,則回車按鈕上顯示”搜尋”,如果是執行傳送功能,則顯示”傳送”,如果是下一步,則顯示”下一步”。
實現這個功能需要呼叫EditText的setImeOptions方法:
/**
*
* IME_ACTION_SEARCH 搜尋
* IME_ACTION_SEND 傳送
* IME_ACTION_NEXT 下一步
* IME_ACTION_DONE 完成
*/
mInputEditTxt.setImeOptions(EditorInfo.IME_ACTION_SEARCH);
限制輸入內容
有時候我們根本就不想使用者輸入一些雜七雜八的內容,因為這需要程式針對輸入的內容做各種處理,如果處理不當還會有好多不可預見的問題,索性在輸入內容時就禁止使用者輸入一些非法字元,這可以通過下面的方式實現,新建一個類InputTxtFilter:
publicclassInputTxtFilter{
publicstaticfinalintINPUT_TYPE_EN = 0x01;
相關推薦
Android EditText 的使用及值得注意的點——如如何遮蔽EditText的複製、貼上功能
Android上有很多輸入法應用,每種輸入法都有各自的特點,輸入法多數時候是和EditText配合使用,結合我自己的親身實踐分享一下使用EditText過程中遇到的一些問題及解決方法。 置預設輸入法 有時候為了提高使用者體驗,在彈出輸入法時需要設定
Android手機SD卡檔案或目錄拷貝、複製、貼上功能實現程式碼
package com.copy.file; /** * @author wainiwann * Android SD卡檔案目錄拷貝操作 * */ import java.io.File; import java.io.FileInputStream; import ja
Android EditText的屬性和方法介紹使用及值得注意的點
一、EditView屬性詳細介紹: 屬性名稱 描述 android:utoLink 設定是否當文字為URL連結/email/電話號碼/map時,文字顯示為可點選的連結。 可選值(none/web/email/phone/map/all)。 這裡只有在同時設定tex
Android EditText 的使用及值得注意的地方
Android上有很多輸入法應用,每種輸入法都有各自的特點,輸入法多數時候是和EditText配合使用,結合我自己的親身實踐分享一下使用EditText過程中遇到的一些問題及解決方法。 設定預設輸入法 有時候為了提高使用者體驗,在彈出輸入法時需要設定預設的輸
Django瞭解及安裝注意點
Web框架之Django框架開發 一、什麼是web伺服器(瞭解) 當我們在瀏覽器輸入URL後,瀏覽器會先請求DNS伺服器,獲得請求站點的 IP 地址。然後傳送一個HTTP Request(請求)給擁有該 IP 的主機,接著就會接收到伺服器給我們的 HTTP Response(響應),瀏覽器經
叢集搭建通用過程及一些注意點
叢集搭建通用過程及一些注意點 0.設定靜態ip(vim /etc/sysconfig/network-scripts/ifcfg-eth0 中配置靜態ip),ip不變有利於後面的操作,但其實變了也只需要修改hosts檔案即可,這就是用計算機名的好處。 關於修改網路,當虛擬機器是克隆的
記Google Play上架及測試注意點
在要開始上架流程之前,有一些東西要準備好: (1)Google的開發者賬號(需要付費) (2)一款FQ工具 (3)手機要有Google Play應用商店和Google Play服務(測試時使用,因為國內手機大部分都是沒有的,自己想辦法搞定) 做好上面這些
使用 create-react-app 構建 react應用程式流程及開發注意點
一.瞭解 1.什麼是React.js React.js 是 Facebook 推出的一個用來構建使用者介面的 JavaScript 庫。 React 中,把一切東西都看成元件,而且所有元件有其狀態。什麼是狀態?簡單來說,一個元件有多種有限的狀態,但同時只能是一種狀態,不
Edittext不可編輯可點選 & 解決Edittext第二次點選才有效
問題1:Edittext不可編輯可點選 1、Edittext在新的api裡已經把editable功能標記deprecated。 2、但是如果設定enabled為false的話,點選事件也無效了。 解決1:設定focusable方法 哎,之前因為android studio的
40個js小技巧:遮蔽滑鼠右鍵、取消選取、防止複製、貼上、轉換位址列圖示
來源:http://www.cnblogs.com/aliang1992/p/6279291.html 1. oncontextmenu="window.event.returnValue=false" 將徹底遮蔽滑鼠右鍵 <table border oncont
Android系統剪貼簿(ClipboardManager)的使用: 通過程式碼複製和貼上資料
1. 概述 操作 Android 系統剪貼簿的類在 android.content 包下(SDK API 11+),主要包含下面三個類: ClipboardManager: 表示一個剪貼簿
安卓5.0以後禁止文字編輯框EditText複製、貼上、選擇、全選等功能的幾種可行性方法探索
現在各手機廠商深度化定製rom,在谷歌原生系統上重新開發了很多功能,比如EditText的長按或雙擊事件彈出框支援線上翻譯,搜尋等,如果你的專案出於資訊保安考慮想禁止這些功能實現的話,你會發現網上現有的方法都無法做到適配所有手機,總有那麼幾款漏網之魚,非常頭疼。下面介紹兩種自
split 分割 字串(分隔符如:* ^ : | , .) 及注意點
【1】單個符號作為分隔符 Stringaddress="上海|上海市|閔行區|吳中路"; String[]splitAddress=address.split("\\|");//如果以豎線為分隔符,則split的時候需要加上兩個斜槓【\\】進行轉義
Java split 分割 字串(分隔符如:* ^ : | , .) 及注意點 要轉義
(1)split表示式,其實就是一個正則表示式。* ^ | 等符號在正則表示式中屬於一種有特殊含義的字元,如果使用此種字元作為分隔符,必須使用轉義符即\加以轉義。 (2)如果使用多個分隔符則需要藉助
split 分割 字串(分隔符如:* ^ : | , .) 及注意點
【1】單個符號作為分隔符 String address=”上海|上海市|閔行區|吳中路”; String[] splitAddress=address.split(“\|”); //如果以豎線為分隔符,則split的時候需要加上兩個
android 通過監聽edittext實現button的點擊事件
監聽 edittext 如果你沒有接第三方的輸入設備,那麽點擊按鈕只需找到你的button然後:button.performClick();就可以了那麽如果你用到第三方輸入法,有些時候監聽就沒有這麽好使了:以下場景為:外接輸入服務,直接給我丟一串字符,我拿到字符後執行按鈕事件代碼如下: editTe
將專案打成war包並用tomcat部署的方法,步驟及注意點
部署的遇到第一個問題,就是tomcat和jdk的環境問題: 首先 理解為啥要關注這二者的環境呢?他們還是有關係的–tomcat 作為比較流行的java Web伺服器也是用java來實現的一個比較大的軟體 它也必須在虛擬機器JVM上執行 。 而java很多運用都是用在web開發上 所以他們就聯絡在一起
vue Axios 使用及注意點
1、使用npm安裝 npm install axios 使用 cdn: <script src="https://unpkg.com/axios/dist/axios.min.js"></script> 2、引用 import Axios fr
HTTPS配置優化及注意點
Nginx官網反向代理時配置SSL證書,需要enable ngx_http_ssl_module模組,且需要支援的openssl開發版,預設配置引數比較少,但是可以根據實際情況對效能及安全性做成優化,具體如下! 一、SSL引數具體優化(這裡只填主要的) 1. ssl_protocols TLSv
open函式的一些注意點及r,r+,w,w+,a,a+的區別
open函式的一些注意點 open(file[, mode[, buffering[, encoding[, errors[, newline]]]]]) (1)file檔案路徑及名稱,需要加引號如”/Users/macxunlei/Desktop/a.txt” (2)mode檔案開啟模式,r、w、a為開啟檔