我在“ Xamarin Android”中更改“ EditText”的文本时遇到问题,我希望在2个字符后放置一个“ /”,这样,我就可以获得类似"MM/YY"
if条件但在用户按下“退格键”时可以正常工作的文本。要擦除它,文本不会消失,到目前为止,我已经用“替换”功能将这四个字符分开了,但是无法将“ str”放回“编辑文本”中,如果我这样做,它只会崩溃。expiryEditText的
代码-TextChangedEvent
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);
}
}
祝好运
如有查询,请还原。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句