在我的Android应用程序中,我使用的是一个名为“IntEditTextPreference”的类。当我希望用户将首选项作为整数引入时,使用此类。
但它有一个问题。当用户将该字段留空并按“ok”时,将抛出NumberFormatException。
如果字段为空,我该怎么做才能避免用户按“确定”?
谢谢!
public class IntEditTextPreference extends EditTextPreference
{
public IntEditTextPreference(Context context)
{
super(context);
}
public IntEditTextPreference(Context context, AttributeSet attrs)
{
super(context, attrs);
}
public IntEditTextPreference(Context context, AttributeSet attrs, int defStyle)
{
super(context, attrs, defStyle);
}
@Override
protected String getPersistedString(String defaultReturnValue)
{
return String.valueOf(getPersistedInt(-1));
}
@Override
protected boolean persistString(String value)
{
return persistInt(Integer.valueOf(value));
}
}
答案 0 :(得分:0)
通常,如果您使用的是基于浏览器的应用程序,则在输入有效时,您将使用 JavaScript / AJAX 显示按钮。这已在客户端处理。
要避免NumberFormatException,
只是在try
语句周围添加catch
- Integer.valueOf(value)
- 块。
基本上它取决于您的客户端框架。可能有更好的框架特定解决方案。你用哪一个?
答案 1 :(得分:0)
你可能仍然有一个try / catch块来捕捉NumberFormatException
。但是有很多方法可以做到这一点。一种方法是使用setClickable
方法按钮false
,然后当文本不为空时使用true,并使用onTextChangedListener
为整数。或者你可以简单地让它可以点击,但是当点击按钮时检查空字符串或非整数,并在允许按钮执行任何其他操作之前使用警告消息toast / alert / label让用户知道他们有不正确的字段。希望这有帮助!