如何在Xamarin Android中更改文本更改事件中编辑文本的文本
我在“Xamarin Android”中更改“EditText”的文本时遇到问题,我希望在两个字符后加一个“/”,这样我就可以获得像如何在Xamarin Android中更改文本更改事件中编辑文本的文本,android,xamarin,xamarin.android,android-edittext,Android,Xamarin,Xamarin.android,Android Edittext,我在“Xamarin Android”中更改“EditText”的文本时遇到问题,我希望在两个字符后加一个“/”,这样我就可以获得像“MM/YY” 它恰好与if条件一起工作,但当用户按“backspace”将其删除时,文本不会消失,到目前为止,我已使用“Replace”功能将这四个字符分开,但无法将“str”放回编辑文本,如果我这样做,它就会崩溃。 代码-TextChangedEvent of到期编辑文本 var Expirydata = expiryEditText.T
“MM/YY”
它恰好与if条件一起工作,但当用户按“backspace”将其删除时,文本不会消失,到目前为止,我已使用“Replace”功能将这四个字符分开,但无法将“str”放回编辑文本,如果我这样做,它就会崩溃。代码-TextChangedEvent of到期编辑文本
var Expirydata = expiryEditText.Text;
if(Expirydata.Length == 2)
{
expiryEditText.Text = expiryEditText.Text + "/";
}
else if(Expirydata.Length ==5)
{
monthId = Expirydata.Substring(0, 2);
yearId = Expirydata.Substring(Expirydata.Length - 2);
var xx = monthId + "/"+ yearId;
String str = Expirydata.ToString().Replace(Expirydata,xx);
// expiryEditText.Text = xx.ToString();
}
else
{
}
发生这种情况的原因是,您当前的代码没有考虑用户可以按backspace返回以再次删除文本的部分,因为您可以使用Start属性找出当前值并进行相应的更改
if (expiryEditText.Length() == 2 && e.Start != 2)
{
expiryEditText.Append("/");
}
else
{
if (expiryEditText.Length() >2 && expiryEditText.Text.IndexOf('-') == -1)
{
expiryEditText.Text = expiryEditText.Text.Insert(2, "-");
expiryEditText.SetSelection(expiryEditText.Text.Length);
}
}
祝你好运
如有疑问,请回复