2013-05-15 3 views
0

나는 부지런히 검색하려했습니다. 나는 edittext가 항상 그 값이 변하는 지 검사하고 무언가를 포함한다면 무엇인가해야한다. OnTouch 리스너를 살펴 봤지만 "touch"가 정확한지 확인하고 있습니까? 코드를 통해edittext에서 값을 동적으로 가져 오는 방법은 무엇입니까?

일러스트 레이 티드 :

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} 

예는 "자동 계산"버튼을

답변 =이 당신의 한 OnCreate 방법으로 작동 될 것이다. 모두에게 감사 또는 TextWatcher 날 지점()

당신은 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) { 

     } 
}); 

답변

0

. 당신의 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} 
    } 
} 

이 같은 클래스를 작성하고 당신이 당신의 EditText

yourEditText.addTextChangedListener(new TempWatcher()); 

그런 때마다 텍스트가 변경이 리스너가 값을 확인합니다를 초기화 한 후이처럼 EditTextTextWatcher를 연결합니다.

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 
     } 
    }); 
+0

위대한 대답은 작동하지만 내 oncreate 메서드에서 뭔가를해야합니다. 부울을 반환하는 방법에 대해 생각했지만 텍스트 워처를 구현하기 때문에 작동하지 않습니다. – user2370642

+0

이해가 안됩니다. onCreate()에서 무엇을해야합니까? 어디에서 부울 값을 반환 하시겠습니까? – codeMagic

+0

내 프로젝트가 문자열을 구문 분석하고 "내 문자열"이 포함되어 있으면 해당 문자열에서 회 전자 값을 만들어야합니다. – user2370642

0

변경하면 그냥 계속 확인하기 때문에 당신은이 가진 else 필요하지 않습니다 대신 EditText에 addTextChangedListener을 입력하십시오.

1

TextWatcher와 통화를 구현 : 텍스트가 당신이 원하는 것은 TextWatcher 여기 당신이 그것을 구현할 수있는 방법입니다

관련 문제