gpt4 book ai didi

android - 我怎样才能像在 quora 中那样在 edittext 的末尾加上问号?

转载 作者:行者123 更新时间:2023-11-29 01:28:18 30 4
gpt4 key购买 nike

当用户输入时,如何在 EditText 的末尾添加问号 (?)。在每个文本更改上,问号都应保留在编辑文本的末尾,就像在 Quora 中发生的那样。我正在使用 textwatcher 更改文本并将问号放在末尾,但我没有得到确切的逻辑。

textWatcher = 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) {

questionTxt.removeTextChangedListener(textWatcher);
questionTxt.setText(questionTxt.getText().toString().replace("?", ""));
questionTxt.setSelection(questionTxt.getText().length()-1);
questionTxt.setText(questionTxt.getText().toString()+"?");
questionTxt.addTextChangedListener(textWatcher);
questionTxt.addTextChangedListener(textWatcher);

}

@Override
public void afterTextChanged(Editable editable) {
questionTxt.setSelection(editable.length());
if (questionTxt.getText().toString().length() <= 0)
questionTxt.setError("Enter question");
}
};

questionTxt.addTextChangedListener(textWatcher);

请引用下图以供引用。

enter image description here

最佳答案

获得它的最佳方法是像这样创建 TextWatcher:

textWatcher = 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) {
if (editable.length() == 0) {
return;
}

String text = editable.toString();
int indexOfQuestionMark = text.lastIndexOf("?");
if (indexOfQuestionMark == -1 || indexOfQuestionMark != text.length() - 1) {
editable.append("?");
}
}
};

questionTxt.setHint("Enter question")
questionTxt.addTextChangedListener(textWatcher);

只需稍作调整,您的解决方案就可以完美运行 :)

我在问题 txt 中设置了提示而不是设置错误。这样,当没有输入任何内容时,用户将看到文本“输入问题”。

“算法”正在搜索“?”出现在非空输入中。如果它在最后 -> 那么无事可做。如果没有找到,或者在文本中的某处找到 -> 然后在最后添加问号。

请注意,此 TextWatcher 实现不依赖于 questionTxt,因此您可以将其放在另一个文件中。

关于android - 我怎样才能像在 quora 中那样在 edittext 的末尾加上问号?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32635193/

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