2016-09-22 7 views
0

사용자가 신용 카드 번호를 입력하도록하려는이 EditText가 있으므로 사용자가 입력하는 동안 문자열을 서식 지정하고 싶습니다. 특히 문자열에 간격을두고 싶습니다. 이 추천 번호 :Xamarin android 형식 문자열 onkey 누름

XXXX XXXX XXXX XXXX

내가 찾은

나는 TextWatcher 및 onKeyUp에 사용할 수 있지만, 나는 어떤 사람이 정말 감사하겠습니다 나를 설명 할 수 경우 글고에서 사용 방법을 이해할 수 없었다 고마워.

+0

'EditText'와 함께 사용 하시겠습니까? 사용자는'TextView '를 입력 할 수 없으므로 아무 것도 작동하지 않습니다. –

+0

예, 미안 해요 EditText를 의미합니다 – elunap

답변

1

ITextWatcher 인터페이스를 구현하는 클래스를 만듭니다. 텍스트가 리스너를 변경 그런 다음

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

그런 다음 텍스트를 포맷 재정의 방법을 사용 (단편 또는 OnCreateView) ... 그 클래스의

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) 
    { 
    } 
} 
활동에

을 .. 인스턴스를 추가 당신이 필요한 것을 보여주기 위해서.

+0

어디서 코드를 입력해야합니까? OnTextChanged 내부? oncreate를 재정의해야하는 이유는 무엇입니까? – elunap

+0

클래스의 인스턴스를 작업의 OnCreate 메서드 (또는 조각의 OnCreateView 메서드)에 전달합니다. –

+0

감사합니다. 단 한가지, 문자 사이에 공백을 넣을 때 문자열의 끝에서 4 자 앞까지의 초점이 바뀝니다. XXXX | 이동 경로 : | XXXX – elunap