在edittext中隐藏字符

时间:2014-08-15 14:12:11

标签: android

我有以下代码

public class Answer extends Activity  implements KeyListener{
EditText ed1;
Button b;
LinearLayout l;
int flag=0;
int f=0;

@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.answer);
ed1=(EditText)findViewById(R.id.answer);
b=(Button)findViewById(R.id.ans);
l=(LinearLayout)findViewById(R.id.An);
ed1.setKeyListener(this);
b.setOnClickListener(new View.OnClickListener() {

    @Override
    public void onClick(View arg0) {
        // TODO Auto-generated method stub
        if(flag==1)
        l.setBackgroundColor(Color.BLACK);
    }
});


}
    public boolean onKeyUp(View arg0, Editable arg1, int arg2, KeyEvent arg3) {
    // TODO Auto-generated method stub
    switch(arg2){
    case KeyEvent.KEYCODE_A:
        if(f==0){
            ed1.setText("");
            f++;
            flag=1;
        }

    }
    return false;
    }

此代码的问题在于按下' a'它是设置颜色但在此之后它没有在edittext中显示任何内容 - 即它是设置颜色但在此之后它没有在edittext中显示任何内容。如果我们按下' a'接着是' n'然后它会隐藏两个' a'和' n'但是我想隐藏一个'仅

1 个答案:

答案 0 :(得分:0)

如果您希望每次键入' a'时都要从EditText中删除所有内容,那么ed1.setText("");就是罪魁祸首(它的结算)每次你的EditText值。)

在您的开关案例中尝试此修改:

String currText = ed1.getText().toString();
ed1.setText(currText.replace("a", ""));