Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/199.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在Xamarin Android中更改文本更改事件中编辑文本的文本_Android_Xamarin_Xamarin.android_Android Edittext - Fatal编程技术网

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

如何在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

我在“Xamarin Android”中更改“EditText”的文本时遇到问题,我希望在两个字符后加一个“/”,这样我就可以获得像
“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);
      }
    }
祝你好运

如有疑问,请回复