Xamarin android 格式化字符串 onkey 按下
Xamarin android format string onkey pressed
我有这个 EditText,我希望用户在其中键入信用卡号,所以我想在用户键入时格式化字符串,我特别希望字符串每个都有一个 space 4 个数字,如下所示:
xxxx xxxx xxxx xxxx
我发现我可以使用 TextWatcher 和 onKeyUp,但我不明白如何在 EditText 中使用它,如果有人能向我解释,我将不胜感激,谢谢。
创建一个实现 ITextWatcher
接口的 class。然后添加一个 class 的实例作为文本更改的侦听器...
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)
{
}
}
在您的activity..(或OnCreateView
片段中)
public override void OnCreate()
{
// other code..
myEditText.AddTextChangedListener(new CreditCardFormatter(myEditText));
}
然后使用覆盖方法重新格式化文本以显示您需要的内容。
我有这个 EditText,我希望用户在其中键入信用卡号,所以我想在用户键入时格式化字符串,我特别希望字符串每个都有一个 space 4 个数字,如下所示:
xxxx xxxx xxxx xxxx
我发现我可以使用 TextWatcher 和 onKeyUp,但我不明白如何在 EditText 中使用它,如果有人能向我解释,我将不胜感激,谢谢。
创建一个实现 ITextWatcher
接口的 class。然后添加一个 class 的实例作为文本更改的侦听器...
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)
{
}
}
在您的activity..(或OnCreateView
片段中)
public override void OnCreate()
{
// other code..
myEditText.AddTextChangedListener(new CreditCardFormatter(myEditText));
}
然后使用覆盖方法重新格式化文本以显示您需要的内容。