2014-11-09 3 views
0

문자열 (EditText에서 오는 문자열)이 문자열 배열의 일부인지 확인하고 색인이 필요한지 확인하고 싶습니다.문자열 배열에서 문자열 색인 얻기

내부 작업 클래스 : 나는 TextWatcher은 다음과 같이 TextChangedListener로 추가 가지고

private String[] randomSpanishWords = { "pueblo", "madre" }; 

private TextWatcher ETListener = new TextWatcher() { 
    @Override 
    public void beforeTextChanged(CharSequence charSequence, int i, int i2, int i3) { 

    } 

    @Override 
    public void onTextChanged(CharSequence charSequence, int i, int i2, int i3) { 

     int index = Arrays.asList(randomSpanishWords).indexOf(charSequence); 
    } 

    @Override 
    public void afterTextChanged(Editable editable) { 

    } 
}; 

에서 onCreate()에서 다음 글고 치기에 상관없이 임 입력

editText1.addTextChangedListener(ETListener); 

을, 색인 항상 -1입니다. 내가 뭘 놓치고 있니?

+0

당신의 CharSequence의 값을 디버깅 적이에 대한 CharSequence를 사용 하는가? 푸에블로 또는 마드레와 같지 않으면 결과는 항상 -1이됩니다. – JamesB

+0

예 ... 그 이유는 ... 그걸 얻지 못하는 이유 ... charsequence는 푸에블로에 입력하면 푸에블로입니다 –

답변

1

봅니다

charSequence.toString() 

와 문자열에 CharSequence를 변환하거나 배열

private CharSequence[] randomSpanishWords = { "pueblo", "madre" }; 
+0

thx : D charSequence.toString() 그랬습니다! –

+0

좋습니다! 내가 생각하기에 List.indexOf는 equals()로 값을 비교하기 전에 클래스를 검사해야한다. 그러나 나는 이것이 안드로이드에 특정한 것으로 의심한다. – Florent