国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 系統(tǒng) > Android > 正文

實(shí)現(xiàn)Android鍵盤(pán)的中英文適配

2019-12-12 01:32:06
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

大家在進(jìn)行Android項(xiàng)目開(kāi)發(fā)的時(shí)候經(jīng)常會(huì)遇到中文輸入和英文輸入切換的情況,本篇內(nèi)容教給大家實(shí)現(xiàn)Android下自動(dòng)識(shí)別中英文鍵盤(pán)的功能。

英文環(huán)境下,密碼框字體和一般字體不一致問(wèn)題

1、xml中不能設(shè)置inputType 屬性、或者password屬性

2、中文環(huán)境中設(shè)置inputType可以

3、當(dāng)要是適配英文,只能在Java代碼設(shè)置

android開(kāi)發(fā)EditText輸入時(shí)彈出數(shù)字輸入鍵盤(pán)(適配英文環(huán)境)

首先設(shè)置只能輸入數(shù)字

<EditTextandroid:id="@+id/second_password"android:layout_width="match_parent"android:layout_height="wrap_content"android:digits="1234567890"android:maxLength="6"android:paddingLeft="@dimen/dp_20"android:singleLine="true"android:textSize="@dimen/sp_14"/>

重點(diǎn)是

android:digits="1234567890"

EditText中android:digits屬性的作用

是設(shè)置允許輸入哪些字符。如“1234567890.+-*/%/n()”

再在代碼里面設(shè)置輸入法類(lèi)型:

secondPassword.setInputType(EditorInfo.TYPE_CLASS_PHONE);//數(shù)字鍵盤(pán)secondPassword.setTransformationMethod(new PasswordTransformationMethod());//密文

則如果該EditText獲得焦點(diǎn),會(huì)彈出數(shù)字輸入法的模擬鍵盤(pán)

請(qǐng)?jiān)趚ml中設(shè)置inputType屬性即可

1、API中有,列舉出來(lái)inputType的值都包括哪些。

android:inputType=”none”android:inputType=”text”android:inputType=”textCapCharacters” 字母大寫(xiě)android:inputType=”textCapWords” 首字母大寫(xiě)android:inputType=”textCapSentences” 僅第一個(gè)字母大寫(xiě)android:inputType=”textAutoCorrect” 自動(dòng)完成android:inputType=”textAutoComplete” 自動(dòng)完成android:inputType=”textMultiLine” 多行輸入android:inputType=”textImeMultiLine” 輸入法多行(如果支持)android:inputType=”textNoSuggestions” 不提示android:inputType=”textUri” 網(wǎng)址android:inputType=”textEmailAddress” 電子郵件地址android:inputType=”textEmailSubject” 郵件主題android:inputType=”textShortMessage” 短訊android:inputType=”textLongMessage” 長(zhǎng)信息android:inputType=”textPersonName” 人名android:inputType=”textPostalAddress” 地址android:inputType=”textPassword” 密碼android:inputType=”textVisiblePassword” 可見(jiàn)密碼android:inputType=”textWebEditText” 作為網(wǎng)頁(yè)表單的文本android:inputType=”textFilter” 文本篩選過(guò)濾android:inputType=”textPhonetic” 拼音輸入//數(shù)值類(lèi)型android:inputType=”number” 數(shù)字android:inputType=”numberSigned” 帶符號(hào)數(shù)字格式android:inputType=”numberDecimal” 帶小數(shù)點(diǎn)的浮點(diǎn)格式android:inputType=”phone” 撥號(hào)鍵盤(pán)android:inputType=”datetime” 時(shí)間日期android:inputType=”date” 日期鍵盤(pán)android:inputType=”time” 時(shí)間鍵盤(pán)

2、Enter鍵圖標(biāo)的設(shè)置

想象一下,當(dāng)我們?cè)贓ditText中完成了輸入,想要以輸入的內(nèi)容作為關(guān)鍵字進(jìn)行搜索時(shí),卻需要按下“完成”圖標(biāo)的Enter按鍵,顯然這不符合良好的用戶體驗(yàn)設(shè)計(jì)。 那么,怎么樣來(lái)改變Enter按鍵的圖標(biāo)呢?

Android為我們提供了android:imeOptions來(lái)實(shí)現(xiàn)這一功能。
android:imeOptions的常用參數(shù)有以下一些:

normal(常規(guī)),

actionUnspecified(未指定),

actionNone(沒(méi)有動(dòng)作),

actionGo(去往),

actionSearch(搜索),

actionSend(發(fā)送),

actionNext(下一個(gè)),

actionDone(完成),

flagNoExtractUi,flagNoAccessoryAction,flagNoEnterAction等,其對(duì)應(yīng)的Enter鍵

圖標(biāo)如圖所示:

3、設(shè)置軟鍵盤(pán)交互樣式

有時(shí)鍵盤(pán)彈出需要把界面擠壓到上端或直接覆蓋界面。 可在AndroidManifest.xml 對(duì)應(yīng)的 Activity 里添加上這條屬性:
android:windowSoftInputMode=”參數(shù)”

參數(shù)詳情如下,多個(gè)參數(shù)之間可用‘|'隔開(kāi):

【A】stateUnspecified:軟鍵盤(pán)的狀態(tài)并沒(méi)有指定,系統(tǒng)將選擇一個(gè)合適的狀態(tài)或依賴(lài)于主題的設(shè)置

【B】stateUnchanged:當(dāng)這個(gè)activity出現(xiàn)時(shí),軟鍵盤(pán)將一直保持在上一個(gè)activity里的狀態(tài),無(wú)論是隱藏還是顯示

【C】stateHidden:用戶選擇activity時(shí),軟鍵盤(pán)總是被隱藏

【D】stateAlwaysHidden:當(dāng)該Activity主窗口獲取焦點(diǎn)時(shí),軟鍵盤(pán)也總是被隱藏的

【E】stateVisible:軟鍵盤(pán)通常是可見(jiàn)的

【F】stateAlwaysVisible:用戶選擇activity時(shí),軟鍵盤(pán)總是顯示的狀態(tài)

【G】adjustUnspecified:默認(rèn)設(shè)置,通常由系統(tǒng)自行決定是隱藏還是顯示

【H】adjustResize:該Activity總是調(diào)整屏幕的大小以便留出軟鍵盤(pán)的空間

【I】adjustPan:當(dāng)前窗口的內(nèi)容將自動(dòng)移動(dòng)以便當(dāng)前焦點(diǎn)從不被鍵盤(pán)覆蓋和用戶能總是看到輸入內(nèi)容的部分

EditText默認(rèn)不彈出軟件鍵盤(pán):

方法一:

在 AndroidMainfest.xml 中選擇哪個(gè) activity,設(shè)置windowSoftInputMode 屬性為 adjustUnspecified|stateHidden
例如:

<activity android:name=".Main"  android:label="@string/app_name"  android:windowSoftInputMode="adjustUnspecified|stateHidden"  android:configChanges="orientation|keyboardHidden">  <intent-filter>    <action android:name="android.intent.action.MAIN" />    <category android:name="android.intent.category.LAUNCHER" />  </intent-filter></activity>

方法二:

讓EditText失去焦點(diǎn),使用EditText的clearFocus方法

例如:

EditText edit=(EditText)findViewById(R.id.edit);edit.clearFocus();

方法三:

強(qiáng)制隱藏Android輸入法窗口

例如:

EditText edit=(EditText)findViewById(R.id.edit);InputMethodManager imm = (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE);imm.hideSoftInputFromWindow(edit.getWindowToken(),0);

4、自動(dòng)將輸入的小寫(xiě)字母轉(zhuǎn)換為大寫(xiě)

自動(dòng)轉(zhuǎn)化為大寫(xiě)字母。但是轉(zhuǎn)換出來(lái)的只是顯示為大寫(xiě)字母,存的還是小寫(xiě)字母。

class InputLowerToUpper extends ReplacementTransformationMethod{   @Override   protected char[] getOriginal() {    char[] lower = { '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 lower;   }   @Override   protected char[] getReplacement() {    char[] upper = { '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 upper;   }  } editText.setTransformationMethod(new InputLowerToUpper());

也可通過(guò)設(shè)置 android:inputType=”textCapCharacters”可行,但是就不能一塊使用密碼鍵盤(pán)了。

//下面這種方法才是真正的將輸入的小寫(xiě)字母轉(zhuǎn)換為大寫(xiě)字母addressText.addTextChangedListener(new TextWatcher() {   @Override   public void onTextChanged(CharSequence s, int start, int before, int count) {    // TODO Auto-generated method stub    addressText.removeTextChangedListener(this);//解除文字改變事件    addressText.setText(s.toString().toUpperCase());//轉(zhuǎn)換    addressText.setSelection(s.toString().length());//重新設(shè)置光標(biāo)位置    addressText.addTextChangedListener(this);//重新綁 //   licensePlateNumber = addressText.getText().toString().trim();   }   @Override   public void beforeTextChanged(CharSequence s, int start, int count, int after) {    // TODO Auto-generated method stub   }   @Override  public void afterTextChanged(Editable arg0) {   // TODO Auto-generated method stub   }  });

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 金门县| 定兴县| 垦利县| 寻乌县| 遵义市| 铅山县| 留坝县| 通辽市| 武乡县| 棋牌| 呼和浩特市| 沛县| 大余县| 宿州市| 阜康市| 靖边县| 新泰市| 台中市| 河间市| 松潘县| 青龙| 出国| 新巴尔虎左旗| 娄底市| 五峰| 大关县| 定襄县| 潢川县| 浮梁县| 遂平县| 宜城市| 独山县| 漯河市| 阿合奇县| 锦州市| 金门县| 龙里县| 正蓝旗| 吴川市| 哈尔滨市| 边坝县|