gpt4 book ai didi

java - 无法解析方法 setText() - Android Studio 开发

转载 作者:行者123 更新时间:2023-12-01 09:21:22 24 4
gpt4 key购买 nike

我对java编程完全是个菜鸟,并且像往常一样把自己投入到了深渊(这样我似乎得到了更好的结果)。

我正在使用 Android Studio 创建 Android 应用,但我的 Java 代码中遇到错误。

我已经搜索了答案,但答案都非常具体于实际代码,因此我自己找不到任何答案。

我的问题出现在我的 MainActivity.java 中,我使用 TextWatcher 作为 NumberTextWatcher,它将从 this answer 将任何输入转换并设置为十进制货币(因为用户将输入价格)关于堆栈溢出。

问题是我收到错误:

Cannot resolve method setText()

这是错误所在的代码(我已用//<- Here it throws an error. 标记了错误。):

   public class NumberTextWatcher implements TextWatcher {

private final DecimalFormat df;
private final DecimalFormat dfnd;
private final EditText et;
private boolean hasFractionalPart;
private int trailingZeroCount;

NumberTextWatcher(EditText inputPricePerOz, String pattern) {
df = new DecimalFormat(pattern);
df.setDecimalSeparatorAlwaysShown(true);
dfnd = new DecimalFormat("#,###.00");
this.et = inputPricePerOz;
hasFractionalPart = false;
}

@Override
public void afterTextChanged(Editable s) {
et.removeTextChangedListener();

if (s != null && !s.toString().isEmpty()) {
try {
int inilen, endlen;
inilen = et.getText().length();
String v = s.toString().replace(String.valueOf(df.getDecimalFormatSymbols().getGroupingSeparator()), "").replace("$","");
Number n = df.parse(v);
int cp = et.getSelectionStart();
if (hasFractionalPart) {
StringBuilder trailingZeros = new StringBuilder();
while (trailingZeroCount-- > 0)
trailingZeros.append('0');
et.setText(); //<- Here it throws an error.
} else {
et.setText(); //<- Here it throws an error.
}
et.setText(); //<- Here it throws an error.
endlen = et.getText().length();
int sel = (cp + (endlen - inilen));
if (sel > 0 && sel < et.getText().length()) {
et.setSelection(sel);
} else if (trailingZeroCount > -1) {
et.setSelection(et.getText().length() - 3);
} else {
et.setSelection(et.getText().length());
}
} catch (NumberFormatException | ParseException e) {
e.printStackTrace();
}
}

et.addTextChangedListener(this);
}

由于我对 Java 知之甚少,所以我不知道为什么会发生这个错误,尽管我认为使用 setText() 方法设置文本足够简单。任何帮助将非常感激

最佳答案

错误的语法:它应该类似于下面的任何一个

        et.setText("Text to set in editext");
OR
et.setText(R.string.app_name);
OR
et.setText("Text to set in editext", BufferType.EDITABLE);

引用 API 文档: https://developer.android.com/reference/android/widget/EditText.html#setText(java.lang.CharSequence, android.widget.TextView.BufferType)
& https://developer.android.com/reference/android/widget/TextView.html#setText(java.lang.CharSequence)

关于java - 无法解析方法 setText() - Android Studio 开发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40144642/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com