0

我试过搜索不成功。我需要一个 edittext 始终检查它的值是否在变化以及它是否包含某些东西做某事。我看过一个 OnTouch 监听器,但它只是检查它是否“触摸”正确?

通过代码说明:

EditText a = (EditText) findViewById(R.id.MyID);
String check = a.getText().toString();
if(check.contains(" my String "))
{`//do something}
else{//keep checking until it contains specified string}

一个例子是“自动计算”按钮

ANSWER = 这适用于您的 OnCreate 方法。谢谢大家或将我指向 TextWatcher()

myEditText.addTextChangedListener(new TextWatcher()
        {
            public void afterTextChanged(Editable s){
                if(myEditText.getText().toString().equals(" my String")){
                    //do something

        }

                }

            public void beforeTextChanged(CharSequence s,int start,int count, int after){} 
            public void onTextChanged(CharSequence s, int start, int before, int count) {

         }
});
4

3 回答 3

1

实现一个TextWatcher并在您的 EditText 上调用addTextChangedListener

于 2013-05-15T23:36:44.350 回答
0

您需要设置一个TextWatcher。在你的创建一个这样的类Activity

private class TempWatcher implements TextWatcher {

@Override
public void afterTextChanged(Editable s) {
}

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

@Override
public void onTextChanged(CharSequence s, int start, int before, int count) 
{   
     if (s.length() > 0) 
     {
          if(s.contains(" my String "))
           {`//do something}
     }
}

并在您初始化后附加TextWatcher到您的喜欢EditTextEditText

yourEditText.addTextChangedListener(new TempWatcher());

然后每次您的文本更改时,此侦听器都会检查值。你甚至不需要elsewith this 因为它只会在文本更改时继续检查

于 2013-05-15T23:35:37.113 回答
0

你想要的是一个 TextWatcher 下面是你如何实现它:

    a.addTextChangedListener(new TextWatcher() {
        @Override
        public void onTextChanged(CharSequence s, int start, int before, int count) {
            if(s.contains(" my String ")){
                //dosomething
             }
        }
        @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
        }
    });
于 2013-05-15T23:36:19.147 回答