数字输入找出用户愿意支付的费用
Posted
技术标签:
【中文标题】数字输入找出用户愿意支付的费用【英文标题】:Numeric input to find out what user is willing to pay 【发布时间】:2019-08-07 07:30:48 【问题描述】:我正在构建一个 android 应用程序,用户可以在其中选择他们想为一件商品支付的金额。但我不想卖便宜货,所以最低接受金额是.20
。
基于我之前写过的问题(here)
if(editText.getText().toString().trim().isEmpty() ||
Integer.parseInt(editText.gettext().toString()) > 0.2 )
//Error message for example
我想显示货币,以便用户知道他们将以何种货币支付他们选择的金额。我找到了this 的帖子,但我不知道如何使用上面代码中的信息。
我对此并不陌生;对不起,如果这是一个愚蠢的问题。
【问题讨论】:
你试过那个库吗? github.com/BlacKCaT27/CurrencyEditText @ZarNiMyoSettWin 简单问题无需引入库 @ZarNiMyoSettWin 看起来很有希望,但不幸的是,我显然是初学者,看不到如何实现它-.- 【参考方案1】:请添加以下类:-
class CustomRangeInputFilter implements InputFilter
private final double minValue;
private final double maxValue;
public CustomRangeInputFilter(double minVal, double maxVal)
this.minValue = minVal;
this.maxValue = maxVal;
@Override
public CharSequence filter(CharSequence source, int start, int end, Spanned dest, int dStart, int dEnd)
try
// Remove the string out of destination that is to be replaced
String newVal = dest.toString().substring(0, dStart) + dest.toString().substring(dEnd, dest.toString().length());
newVal = newVal.substring(0, dStart) + source.toString() + newVal.substring(dStart, newVal.length());
double input = Double.parseDouble(newVal);
if (isInRange(minValue, maxValue, input))
return null;
catch (NumberFormatException e)
e.printStackTrace();
return "";
private boolean isInRange(double a, double b, double c)
return b > a ? c >= a && c <= b : c >= b && c <= a;
并在EditText
中添加过滤器,如下代码:-
edittext.setFilters(new InputFilter[]new CustomRangeInputFilter(0f, 50f));
【讨论】:
以上是关于数字输入找出用户愿意支付的费用的主要内容,如果未能解决你的问题,请参考以下文章