2012-04-17 1 views
0

EditText에서 선택 항목이 변경 될 때마다 호출되는 수신기가 필요합니다. 나는 주위를 둘러 보았지만 API 레벨 7에 유용한 것을 찾지 못했습니다. 텍스트 편집기를 작성 중이며 사용자가 굵게/기울임 꼴/밑줄 텍스트를 선택할 때마다 굵게/기울임 꼴/밑줄이있는 버튼이 선택되도록하고 싶습니다.Android (API 레벨 7)의 텍스트 선택 수신기

+0

시도해 보셨습니까? http://developer.android.com/reference/android/widget/TextView.html#addTextChangedListener%28android.text.TextWatcher%29 – Shubhayu

+0

TextWatcher의 설명에 따라 "TextWatcher를 메서드 목록에 추가합니다. 이 TextView의 텍스트가 바뀔 때마다 호출됩니다. " 텍스트에 대한 선택이 텍스트가 아닌 경우 알려주는 리스너가 필요합니다. 추 신 : 방금 ​​시도했는데 선택이 변경되면 TextWatcher의 리스너가 호출되지 않았습니다. – Sazbak

+0

에디터를 만들기 위해 EditText를 확장하고 있습니까? – Shubhayu

답변

0

EditText를 확장 한 다음 변경하는 텍스트를 관리하려는 방법에 따라 두 가지 방법 중 하나를 재정 의하여 사용자 정의 된 동작을 해결할 수 있습니다.

  1. 당신이 선택은 당신이 onSelectionChanged() 방법을 사용할 수 있으며,이 코드를 구현 변경합니다.

  2. 편집기에서 텍스트가 변경 될 때 뭔가를 구현하려는 경우 onTextChanged()을 사용할 수 있습니다. 텍스트에 긴 프레스 달성 텍스트 선택, 단순히 사용 이후는 다음과 같습니다 :

3

꽤 오래된 질문,하지만 누군가는 여전히이 필요할 수 있습니다, 그래서 여기 내 솔루션입니다

editText.setOnLongClickListener(new View.OnLongClickListener() { 

@Override 
public boolean onLongClick(View view) { 
     // do whatever you need to do on text selection 
    } 
}); 

이 허용 텍스트 선택에 대한 사용자 정의 동작을 제공하며 사용자가 복사/붙여 넣기를 방해하지는 않습니다.

+2

EditText에서 longPress 핸들러를 수행하고 텍스트를 선택하려면 true를 모두 반환하는 경우 false를 반환해야합니다. 당신은 얻을 것이다 onLongClick() exected. –