0

大文字でラベルを表示するTextViewの場合、android:textAllCaps = "true"に設定しました。その罰金を表示します。 しかし、実行時に、ラベルがCapitalにあるかどうかをチェックする必要があります。しかし、私はtextAllCaps属性を取得するためのプロパティを見つけることができませんでした。誰も私にこれを手伝ってもらえますか?実行時にAndoridのEditext/TextViewのtexallcapsを確認するにはどうすればいいですか?

ありがとうございました!

答えて

2

textAllCaps属性のためにキャップになっていると確信しているにもかかわらず、なぜそれらをチェックしたいのか分かりません。

この問題を回避するには、そのテキストの大文字と比較のTextViewテキストを取得するには、次のようになります。

String text = textView.getText().toString(); 
if(text.equals(text.toUpperCase()){ 
    \\The text is in Uppercase 
} 
+0

textview.getText()は、strings.xmlで管理していた形式(例:テキストラベル:Open)を常に返します。私はすべて大文字で表示する必要があります。ですから、他の場所でそのラベルを使う必要があるかもしれないので、textAllCaps属性を使っています。オートメーション目的のために、テキストがallCapsにあるかどうかをコードから検証する必要があります。 strings.xmlでラベルを "OPEN"にしておくと、getText()は正常に動作します。問題は、textAllCaps @runの時間を検証できないということです – DayanaK

+0

その場合、プログラムでラベルを設定できると思いますか? Resourceクラスを使用してそれらを取得し、String toUpperCase()メソッドを使用してそれらをTextViewに設定します。このように、自動検証を実行すると、getText()メソッドはStringを大文字で返します。 –

2

あなたはTextViewの/ボタンのソースコードをチェックすると、here

を見つけました

setAllCapsメソッドは、setTransformationMethodメソッドを使用して、対応するビューに変換メソッドを設定します。

setAllCapsの方法ではAllCapsTransformationMethodです。 BTNあなたのボタンビュー

または代替としては、ボタン/ TextViewにはすべて持っているかどうかを確認するためにそれから方法を作るされ

TransformationMethod transformationMethod = btn.getTransformationMethod(); 
    if (transformationMethod!=null){ 
     if (transformationMethod.getClass().getSimpleName().equalsIgnoreCase(AllCapsTransformationMethod.class.getSimpleName())){ 
//  todo logic based code 
     } 

:このようにビューが設定されているかどうか、あなたがこれを使用して確認することができます取得するにはキャップが設定されたりしませ

このような何か値:

public boolean hasAllCaps(TextView textView){ 
TransformationMethod transformationMethod = textView.getTransformationMethod(); 
    if (transformationMethod!=null) 
     if (transformationMethod.getClass().getSimpleName().equalsIgnoreCase(AllCapsTransformationMethod.class.getSimpleName())){ 
      return true; 
     } 
return false; 
} 

をそして、ちょうど値をチェック!

関連する問題