2016-09-22 19 views
0

私はこのEditTextを使ってユーザーにクレジットカード番号を入力させたいので、ユーザーが入力している間に文字列をフォーマットしたい、 4つの数字は、次のように:Xamarin android format string onkeyが押された

xxxxのxxxxのxxxxのxxxxの

私はTextWatcherメソッドとonKeyUpを使用できることを見出したが、いくつかのいずれかが、私は本当に感謝私を説明することができる場合、私は、のEditTextでそれを使用する方法を理解することができませんでしたそれ、ありがとう。

+0

'EditText'でそれを使用することを意味しますか?ユーザーは 'TextView'の入力を許可されていないので、そのどれも動作しません。 –

+0

はい、私はEditTextを意味して申し訳ありません – elunap

答えて

1

ITextWatcherインターフェイスを実装するクラスを作成します。その後、テキストが.. ...あなたの活動に

public class CreditCardFormatter : Java.Lang.Object, ITextWatcher 
{ 
    private EditText _editText; 
    public CreditCardFormatter(EditText editText) 
    { 
    _editText = editText; 
    } 

    public void AfterTextChanged(IEditable s) 
    { 
    } 

    public void BeforeTextChanged(ICharSequence s, int start, int count, int after) 
    { 
    } 

    public void OnTextChanged(ICharSequence s, int start, int before, int count) 
    { 
    } 
} 

をリスナーを変更(またはフラグメントでOnCreateView)として

public override void OnCreate() 
{ 
    // other code.. 
    myEditText.AddTextChangedListener(new CreditCardFormatter(myEditText)); 
} 

そのクラスのインスタンスを追加したテキストを再フォーマットするためにオーバーライドメソッドを使用しますあなたが必要とするものを示す

+0

どこにコードを配置する必要がありますか? OnTextChangedの内部?なぜ私はその作成を無効にする必要がありますか? – elunap

+0

アクティビティのOnCreateメソッド(またはフラグメントのOnCreateViewメソッド)でクラスのインスタンスを渡します。 –

+0

ありがとう!文字の間にスペースを置くと、文字の終わりから4文字の前にフォーカスが変更されます。 XXXX | | XXXX – elunap

関連する問題