J H*_*unt 4 validation android xamarin.android xamarin
有谁知道如何在Xamarin / Android应用中设置必填字段?
我在Android版式中有此字段和按钮,我想确保在进入下一个活动之前输入了信息。
<TextView
android:text="Zip Code:"
android:textAppearance="?android:attr/textAppearanceMedium"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/zipCodeLabel"
android:textColor="#000000"
android:textSize="20sp" />
<Button
android:id="@+id/btnSearch"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/btnSearch"
android:textSize="30sp" />
Run Code Online (Sandbox Code Playgroud)
如果找到适用于iOS的软件,但找不到适用于Android的软件:https : //developer.xamarin.com/recipes/ios/standard_controls/text_field/validate_input/
有多种方法可以验证输入,具体取决于您的用户体验要求。
android:digits 限制输入:<EditText
android:id="@+id/zipCodeEntry"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:digits="1234567890-"
/>
Run Code Online (Sandbox Code Playgroud)
button.Click += delegate {
if (!ValidateZipCode(zipCodeEntry.Text))
{
zipCodeEntry.Error = "Enter Valid USA Zip Code";
return;
}
DoSubmit();
protected bool ValidateZipCode(string zipCode)
{
string pattern = @"^\d{5}(\-\d{4})?$";
var regex = new Regex(pattern);
Log.Debug("V", regex.IsMatch(zipCode).ToString());
return regex.IsMatch(zipCode);
}
Run Code Online (Sandbox Code Playgroud)
View.IOnKeyListener您Activity和检查/检验每一个关键项zipCodeEntry.SetFilters(new IInputFilter[] { this });
public bool OnKey(View view, [GeneratedEnum] Keycode keyCode, KeyEvent e)
{
if (view.Id == Resource.Id.zipCodeEntry)
{
Log.Debug("V", keyCode.ToString()); // Validate key by key
}
return false;
}
Run Code Online (Sandbox Code Playgroud)
InputFilter(IInputFilter对您的活动实施):public ICharSequence FilterFormatted(ICharSequence source, int start, int end, ISpanned dest, int dstart, int dend)
{
StringBuilder sb = new StringBuilder();
for (int i = start; i < end; i++)
{
if ((Character.IsDigit(source.CharAt(i)) || source.CharAt(i) == '-'))
sb.Append(source.CharAt(i));
}
return (sb.Length() == (end - start)) ? null : new Java.Lang.String(sb.ToString());
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3234 次 |
| 最近记录: |