我有以下代码
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'但是我想隐藏一个'仅
答案 0 :(得分:0)
如果您希望每次键入' a'时都要从EditText中删除所有内容,那么ed1.setText("");
就是罪魁祸首(它的结算)每次你的EditText值。)
在您的开关案例中尝试此修改:
String currText = ed1.getText().toString();
ed1.setText(currText.replace("a", ""));