2017-02-06 12 views
0

Googleのソフトキーボードから数字を非表示にしたいのですが、このリンクhttp://www.androidcentral.com/how-add-dedicated-number-row-google-keyboardが表示されているので、CapsLockほしくない。プログラムでGoogleのソフトキーボードに表示されている番号を非表示にするには

私が試した:

edittext.setFilters(new InputFilter[] {new InputFilter.AllCaps()}); // for making capslock on 

<EditText 
       android:id="@+id/firstName" 
       android:layout_width="match_parent" 
       android:layout_height="wrap_content" 
       android:inputType="textCapCharacters" 
       android:maxLength="10"/> 

をしかし、それでも、私は、ユーザーが必要とする、私は必要としない、番号が表示され、ユーザーはまた、番号を入力することができますがZ

にのみ文字Aを入力することができます

私はユーザーが数字を入力することができないが、大文字を表示していない1つのソリューションを見つけました(ソフトキーボード上のCaps ON)。

ここで解決策があります。それは今私のために働いています。皆様のご支援に感謝します。その入力文字列がJavaファイルでのみ

import java.util.regex.Matcher; 
import java.util.regex.Pattern; 


public class AlphabetValidator { 

private Pattern pattern; 
private Matcher matcher; 

public static final String ALPHABET_PATTERN = "^[a-zA-Z]+[\\p{L} .'-]*$"; 

public AlphabetValidator() { 
    pattern = pattern.compile(ALPHABET_PATTERN); 
} 

/** 
* Validate hex with regular expression 
* 
* @param hex hex for validation 
* @return true valid hex, false invalid hex 
*/ 
public boolean validate(final String hex) { 

    matcher = pattern.matcher(hex); 
    return matcher.matches(); 
} 
} 

アルファベットのある検証のためのバリデータの

edittext.setFilters(new InputFilter[] { 
    new InputFilter() { 
     public CharSequence filter(CharSequence src, int start, 
       int end, Spanned dst, int dstart, int dend) { 
      if(src.equals("")){ // for backspace 
       return src; 
      } 
      if(src.toString().matches("[A-Z ]+")){ 
       return src; 
      } 
      return ""; 
     } 
    } 
}); 
<EditText 
       android:id="@+id/firstName" 
       android:layout_width="match_parent" 
       android:layout_height="wrap_content" 
       android:inputType="textCapCharacters" 
       android:maxLength="10"/> 
+0

'onTextChangedListener'でテキストを変更した後、数字を空に置き換えることができます。 –

+0

私はユーザが何かを書くかもしれないと思うが、あなたは ''^[AZ] +」 ' –

+0

のような正規表現でそれをチェックするかもしれない。カスタムキーボードをインストールした方がもっと多いので、 @DheerubhaiBansalは、ユーザーが何を書いているかを確認して処理できると述べています。 – RadekJ

答えて

0

例は

private AlphabetValidator alphabetValidator; 

    //after submission check 

    if (!alphabetValidator.validate(fieldname.getText().toString())) { 
         fieldname.setError("Error message"); 
         fieldname.requestFocus(); 
        } 
+0

しかし、ユーザーは数字を入力することもできますが、ユーザータイプ番号のときだけエラーメッセージが表示されます。これは必要ありません。私は数字がGoogleのキーボードから隠されているか、数字を入力できないようにしてください –

+0

[this](https://developer.android.com/training/keyboard-input/style.html)は役に立ちます –

0

最初の方法が含まれます: - あなたのEditTextの設定android:inputType="textCapSentences"

これは、デバイスのキーボードの自動大文字の設定が有効になっている場合にのみ機能します。

第二の方法: - : はあなたのEditTextタグに次の行を追加してみがInputFiltersプログラムで

edittext.setFilters(new InputFilter[] {new InputFilter.AllCaps()}); 

UPDATEのANSWERを使用することができます。

android:digits="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ" 

これがうまくいくと思います。

+0

私は持っていました両方を使用しますが、まだ番号が表示されます –

関連する問題