隐藏edittext中的第一个字符

时间:2014-08-14 13:31:04

标签: android android-edittext

我正在创建一个应用程序,我想改变用户的输入字符串 假设用户按下任何按钮,我不想在edittext中显示该字符,它只是保存在变量中,然后显示之后输入的字符。 有没有办法隐藏和保存用户按下的字符?

2 个答案:

答案 0 :(得分:1)

您正在寻找TextWatcher#afterTextChanged

Psuedo代码。请注意,

  

调用此方法通知您,在s中的某个位置,文本已更改。从这个回调中对s进行进一步的更改是合理的,但要注意不要让自己进入无限循环,因为你所做的任何更改都会导致以递归方式再次调用此方法。 (你不知道发生了什么变化,因为其他的afterTextChanged()方法可能已经进行了其他更改并使偏移无效。但是如果你需要知道这里,你可以在onTextChanged中使用setSpan(Object,int,int,int) (CharSequence,int,int,int)标记你的位置,然后从这里查找跨度结束的位置。

EditText searchTo = (EditText)findViewById(R.id.medittext);
    searchTo.addTextChangedListener(new TextWatcher() {

        @Override
        public void afterTextChanged(Editable s) {
           if (s.toString().contains("P")) {
              searchTo.setText(s.toString().replace("P", "W");
           }
        }

        @Override
        public void beforeTextChanged(CharSequence s, int start, int count, int after) {    
        }

        @Override
        public void onTextChanged(CharSequence s, int start, int before, int count) {
        } 

    });

http://developer.android.com/reference/android/text/TextWatcher.html

答案 1 :(得分:0)

您可以在edittext上使用TextWatcher。

    edtText.addTextChangedListener(new TextWatcher() {

        @Override
        public void onTextChanged(CharSequence s, int start, int before, int count) {
            // TODO Auto-generated method stub
            //find character and replace over here
        }

        @Override
        public void beforeTextChanged(CharSequence s, int start, int count,
                int after) {
            // TODO Auto-generated method stub

        }

        @Override
        public void afterTextChanged(Editable s) {
            // TODO Auto-generated method stub

        }
    });

或者,您可以尝试setKeyListener

    edtText.setKeyListener(new KeyListener() {

        @Override
        public boolean onKeyUp(View view, Editable text, int keyCode, KeyEvent event) {
            // TODO Auto-generated method stub
            //compare keyCode and do accordingly
            return false;
        }

        @Override
        public boolean onKeyOther(View view, Editable text, KeyEvent event) {
            // TODO Auto-generated method stub
            return false;
        }

        @Override
        public boolean onKeyDown(View view, Editable text, int keyCode,
                KeyEvent event) {
            // TODO Auto-generated method stub

            return false;
        }

        @Override
        public int getInputType() {
            // TODO Auto-generated method stub
            return 0;
        }

        @Override
        public void clearMetaKeyState(View view, Editable content, int states) {
            // TODO Auto-generated method stub

        }
    })