如何實現(xiàn)Android鍵盤的中英文適配-創(chuàng)新互聯(lián)

這篇文章將為大家詳細講解有關(guān)如何實現(xiàn)Android鍵盤的中英文適配,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。

成都創(chuàng)新互聯(lián)堅持“要么做到,要么別承諾”的工作理念,服務(wù)領(lǐng)域包括:網(wǎng)站建設(shè)、做網(wǎng)站、企業(yè)官網(wǎng)、英文網(wǎng)站、手機端網(wǎng)站、網(wǎng)站推廣等服務(wù),滿足客戶于互聯(lián)網(wǎng)時代的澄邁網(wǎng)站設(shè)計、移動媒體設(shè)計的需求,幫助企業(yè)找到有效的互聯(lián)網(wǎng)解決方案。努力成為您成熟可靠的網(wǎng)絡(luò)建設(shè)合作伙伴!

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

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

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

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

如何實現(xiàn)Android鍵盤的中英文適配

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

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

<EditText
android: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"/>

重點是

android:digits="1234567890"

EditText中android:digits屬性的作用

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

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

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

則如果該EditText獲得焦點,會彈出數(shù)字輸入法的模擬鍵盤

請在xml中設(shè)置inputType屬性即可

1、API中有,列舉出來inputType的值都包括哪些。

android:inputType=”none”
android:inputType=”text”
android:inputType=”textCapCharacters” 字母大寫
android:inputType=”textCapWords” 首字母大寫
android:inputType=”textCapSentences” 僅第一個字母大寫
android:inputType=”textAutoCorrect” 自動完成
android:inputType=”textAutoComplete” 自動完成
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” 長信息
android:inputType=”textPersonName” 人名
android:inputType=”textPostalAddress” 地址
android:inputType=”textPassword” 密碼
android:inputType=”textVisiblePassword” 可見密碼
android:inputType=”textWebEditText” 作為網(wǎng)頁表單的文本
android:inputType=”textFilter” 文本篩選過濾
android:inputType=”textPhonetic” 拼音輸入
//數(shù)值類型
android:inputType=”number” 數(shù)字
android:inputType=”numberSigned” 帶符號數(shù)字格式
android:inputType=”numberDecimal” 帶小數(shù)點的浮點格式
android:inputType=”phone” 撥號鍵盤
android:inputType=”datetime” 時間日期
android:inputType=”date” 日期鍵盤
android:inputType=”time” 時間鍵盤

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

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

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

normal(常規(guī)),

actionUnspecified(未指定),

actionNone(沒有動作),

actionGo(去往),

actionSearch(搜索),

actionSend(發(fā)送),

actionNext(下一個),

actionDone(完成),

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

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

如何實現(xiàn)Android鍵盤的中英文適配

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

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

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

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

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

【C】stateHidden:用戶選擇activity時,軟鍵盤總是被隱藏

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

【E】stateVisible:軟鍵盤通常是可見的

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

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

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

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

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

方法一:

在 AndroidMainfest.xml 中選擇哪個 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失去焦點,使用EditText的clearFocus方法

例如:

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

方法三:

強制隱藏Android輸入法窗口

例如:

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

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

自動轉(zhuǎn)化為大寫字母。但是轉(zhuǎn)換出來的只是顯示為大寫字母,存的還是小寫字母。

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());

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

//下面這種方法才是真正的將輸入的小寫字母轉(zhuǎn)換為大寫字母
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 
  } 
 });

關(guān)于“如何實現(xiàn)Android鍵盤的中英文適配”這篇文章就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,使各位可以學(xué)到更多知識,如果覺得文章不錯,請把它分享出去讓更多的人看到。

網(wǎng)頁名稱:如何實現(xiàn)Android鍵盤的中英文適配-創(chuàng)新互聯(lián)
網(wǎng)站路徑:http://bm7419.com/article6/ddhgog.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供云服務(wù)器、網(wǎng)站建設(shè)品牌網(wǎng)站建設(shè)、網(wǎng)站設(shè)計公司、企業(yè)網(wǎng)站制作、App開發(fā)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

微信小程序開發(fā)