当前位置: 首页 > 面试题库 >

EditText-键入时更改文本

李意致
2023-03-14
问题内容

我需要在键入时替换EditText内的文本:示例:如果用户按下“ A”,它将被存储到缓冲区中,而在EditText上显示“ D”(看起来就像他按下“
D”)。现在,我可以读取按下的字符,但是在et中不能显示任何字符,以避免stackoverflow:

final EditText et = (EditText) findViewById(R.id.editTexts);
    final TextView tv = (TextView) findViewById(R.id.textView2);

    et.addTextChangedListener(new TextWatcher()
    {
            public void afterTextChanged(Editable s){}
            public void beforeTextChanged(CharSequence s, int start, int count, int after) {

            } 
            public void onTextChanged(CharSequence s, int start, int before, int count) {
                if(s.length() > 0) {
                    tv.setText(s.toString().substring(s.length()-1));
                    et.setText("");
                }
            }
    });

问题答案:

您可以根据需要更改它:

public class SampleActivity extends Activity {
    TextWatcher tt = null;
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        final EditText et = (EditText) findViewById(R.id.editText1);
        final TextView tv = (TextView) findViewById(R.id.textView1);
        tt = new TextWatcher() {
           public void afterTextChanged(Editable s){
                et.setSelection(s.length());
           }
           public void beforeTextChanged(CharSequence s,int start,int count, int after){} 
           public void onTextChanged(CharSequence s, int start, int before, int count) {
               et.removeTextChangedListener(tt);
               et.setText(et.getText().toString().replace("A", "C"));
               et.addTextChangedListener(tt);
           }
       };
       et.addTextChangedListener(tt);
   }
}


 类似资料:
  • 所以我要实现的有两个部分 一个im给我的edittext提供密码切换,对此im使用Android.support.design.Widget TextInputLayout+TextInputeDitText 这就是我的edittext的样子 2.还有,如何让setError消息代替passwordToggle图标出现(一旦我通过代码隐藏了它)

  • 我是JavaFX新手。目前,我正在尝试在用户键入时更改文本字段中文本的颜色。我并不是想在其他地方改变文本的颜色,而是在textfield本身。 我到处搜索,每个人都在谈论如何使用文本对象或文本流改变另一个文本字段的颜色。但我试图改变颜色的一个特定的字时,用户正在打字。 例如,如果用户键入“go to school by 2pm”,我希望将单词“by”的颜色更改为绿色(当用户键入时在文本字段中)。

  • 我想要功能 只需输入--EditText返回并提交文本 Shift+Enter--在EditText中新建行 在layout.xml中:

  • 如何在用户输入时更新< code>p:inputText的样式而不打断他们的输入? 这是为了验证。它可以很好地更新并获得正确的样式,但是当< code>p:inputText更新时,它会将光标设置回起点...中断用户的输入。总要有一种侵入性更小的方式来更新风格吧?

  • 启用这些后,我需要提示以不同的颜色显示,如下所示 当我这样尝试时,效果很好 问题是,我必须使用来显示浮动提示。所以,当我在中添加时,这段代码根本不起作用。我用尝试了很多东西,如下所示。但没有任何效果。我只需要EditText的提示文本颜色(不是浮动提示文本)在启用时应该是一种颜色,在禁用时,在中使用时应该是不同的颜色。请帮助! 注意:我的问题不是这个问题的重复。在那里,它提到了TextInputL

  • 我正在使用设计库中新的。我能够让它显示和改变浮动标签的颜色。不幸的是,实际的提示现在总是白色的。 我尝试过用XML、样式和编程方式更改hintColor,还尝试过使用android。支持v7。小装置。AppCompatiEditText但是提示始终显示白色。 这是我的和 下面是我用于的样式(我尝试将属性设置为黑色,但没有为我做任何事情):