如何在Xamarin Android中更改文本更改事件中的编辑文本文本

问题描述 投票:1回答:1

我在“Xamarin Android”中更改“EditText”的文本时遇到问题,我希望在2个字符之后放一个“/”,这样我就可以获得像"MM/YY"这样的文本它恰好在条件下工作但是当用户按下“退格”时“要删除它,文本不会消失,我到目前为止已将这四个字符与”替换“功能分开,但我无法将”str“放回编辑文本,如果我这样做,它只会崩溃。 代码-TextChangedEvent of expiryEditText

            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
            {

            }
android xamarin xamarin.android android-edittext
1个回答
1
投票

发生这种情况的原因是您当前的代码没有考虑用户可以按退格键再次删除文本的部分,因为您可以使用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);
      }
    }

祝好运

在查询时还原。

© www.soinside.com 2019 - 2024. All rights reserved.