2017-03-12 4 views
1

나는 textView와 ListView를 가지고있다. 사용자가 ListView의 요소를 클릭하면 textView에 요소가 추가됩니다. TV에서 이러한 문자열을 분리하고 싶습니다. 사용자가 TextView에서 지정된 문자열을 클릭하면 TV에서 해당 요소를 제거하려고합니다. SpannableString이 필요하다고 생각하지만 서로 분리 할 수는 없습니다. 나는 요소들에 대해 다른 행동을 취할 수 없다는 것을 의미한다.동일한 textView에서 분리 된 범위를 설정하는 방법은 무엇입니까?

enter image description here

+0

[여러 span을 설정하는 방법 같은 부분 텍스트에 TextView의 텍스트?] (http://stackoverflow.com/questions/14981307/how-to-set-multiple-spans-on-a-textviews-text-on-the-same-partial-text) – Okas

답변

0

당신이 이미 가지고있는 경우 SpannableString의 당신이 그 (것)들을 TextUtils를 사용하여 concat에 시도 할 수 있습니다 :

TextUtils.concat(span1, span2); 

그리고 당신은 setSpan 방법을 사용할 수 있습니다 스팬을 만들기;

setSpan (플래그를 int로, 무엇을, INT 시작, INT 끝을 객체)

예는 ClickableSpan 당신이 할 수 만들기 위해 :

SpannableString styledString = new SpannableString(Text); 
ClickableSpan clickableSpan = new ClickableSpan() { 
        @Override 
        public void onClick(View widget) { 

        } 
       }; 
styledString.setSpan(clickableSpan, 0, Text.length(), 0); 

PS : 당신이 기억 Spannable String에 여러 span을 설정할 수 있습니다. 한 span의 끝이 다음 span의 시작 부분과 겹치지 않도록주의하십시오.

+0

예를 들어 6 스팬이있을 때 두 번째 스팬에서 작업을 수행하려면 어떻게해야합니까? –

+0

예, 위에서 언급 한 것처럼 원하는만큼 많은 SpannableString을 가질 수 있습니다. setSpan을 사용하여 여러 문자열을 동일한 문자열로 설정할 수도 있습니다. 각 스팬은 다음과 같이 작성됩니다. setSpan (Object what, int start, int end, int flags) 클릭 할 수있는 텍스트의 부분과 일반 텍스트의 부분을 설정할 수 있습니다. –