我有一个EditText,价格为15美元或15欧元。这取决于您手机的货币。 问题是,当我更改EditText的文本时,我想在SharedPreference中仅保存小数,但我想再次设置我的EditText文本:例如15美元或15欧元。 为此,也许我应该只编辑小数而不是货币。但我不知道该怎么做。
目前,我有:
editTextPrice.addTextChangedListener(new TextWatcher() {
@Override
public void beforeTextChanged(CharSequence charSequence, int i, int i1, int i2) {
}
@Override
public void onTextChanged(CharSequence charSequence, int i, int i1, int i2) {
}
@Override
public void afterTextChanged(Editable editable) {
String price = editable.toString().replaceAll("\\D+",""); // take only decimal for the price
Preferences.setPrice(getContext(), price);
editTextPrice.setText(Format.formatPrice(price));
}
});
此解决方案的问题是我的afterTextChanger中的setText。它让我成为一个无限循环,因为它总是在改变我的文本。
也许这不是解决方案。也许我只需要将货币放在左边或右边,可以编辑小数。但不知道我该怎么做。
我有点失落:/
感谢。
答案 0 :(得分:1)
防止无限循环您可以添加变量标志,如下所示:
editTextPrice.addTextChangedListener(new TextWatcher() {
boolean ignoreChange = false;
@Override
public void beforeTextChanged(CharSequence charSequence, int i, int i1, int i2) {
}
@Override
public void onTextChanged(CharSequence charSequence, int i, int i1, int i2) {
}
@Override
public void afterTextChanged(Editable editable) {
if (!ignoreChange) {
String price = editable.toString().replaceAll("\\D+",""); // take only decimal for the price
Preferences.setPrice(getContext(), price);
ignoreChange = true;
editTextPrice.setText(Format.formatPrice(price));
ignoreChange = false;
}
}
});
而不是afterTextChanged(Editable editable)
中的editTextPrice
,ignoreChange = true;
ignoreChange = false;
更改为result <- data.frame(org_A = c(130, 312, 123),
x = c(44, 33, 12),
y = c(55, 62, 43),
z = c(66, 77, 55))
answer <- rep(NA, (ncol(result) - 1))
for (i in 2:ncol(result)) {
answer[i-1] <- wilcox.test(result$org_A,
result[, i],
alternative = c("two.sided"),
paired = FALSE)$p.value
}
answer
[1] 0.1 0.1 0.1
... sapply
,并使用$或€来做你的魔法。
答案 1 :(得分:0)
答案很简单。假设您将货币保存在变量currency
中,只需使用
String content = et.getText().toString()
然后,当您想要保存没有货币的值时,请使用replace(oldChar,newChar)
并用空字符串替换货币。
String value = content.replace(currency,"");
您将获得双重或整数值,并可以将其保存到SharedPreferences。