2013-12-23 4 views
2

Android에서 Java로 코딩하는 것에 대해 약간의 질문이 있습니다.클릭 할 수있는 문자열에서 긴 텍스트를 사용하여 TextView에서 한 단어를 만드는 방법은 무엇입니까?

그래서 하나의 TextView에 문자열의 긴 텍스트가 있습니다. 이 긴 텍스트를 한 단어 만 클릭하여 다른 활동과 연결할 수 있도록하고 싶습니다.

하지만 안드로이드 개발에 익숙하지 않으므로 너무 복잡한 해결책을 설명하지 마십시오. 감사! :)

나는 이것을 어떻게 할 수 있는지 전혀 모른다. 나도 전에 솔루션을 봤 거든하지만 잘 작동 명확한 방법을 찾지 못했습니다. 어쨌든, 당신의 도움에 감사드립니다.

답변

1

글쎄, 당신은 운이이야.
가능 : this 링크를 참조하십시오.
또 다른 방법은 문자열에 하이퍼 링크를 넣는 것입니다.

+0

나는 당신의 솔루션을 몇 번 시도하고 마침내 작동하도록했습니다! : D ver. 감사합니다. :) – Piezord

+0

당신을 환영합니다! 도움이 되었으면 기쁩니다! –

2

클릭하면 원하는 결과는 무엇입니까?

이 작업을 수행하는 가장 간단한 방법은 TextView의 내용에 URLSpan을 적용하는 것이지만, 웹 페이지를 보는 것 이외의 작업을 수행하려는 경우 ClickableSpan의 고유 버전을 구현하고 원하는대로 클릭하도록 만들 수 있습니다. 귀하의 코멘트 당

편집 :

public class MyURLSpan extends ClickableSpan { 
     Class<?> mClassToLaunch; 

     public MyURLSpan(Class<?> classToLaunch) { 
       mClassToLaunch = classToLaunch; 
     } 

     @Override 
     public void onClick(View widget) { 
       Intent intent = new Intent(widget.getContext(), mClassToLaunch); 
       widget.getContext().startActivity(intent); 
     } 

     @Override 
     public void updateDrawState(TextPaint ds) { 
       // If you don't want the default drawstate (blue-underline), comment this super call out. 
       super.updateDrawState(ds); 
     } 
} 

이 그 다음을 사용 :

ClickableSpan 다른 활동에 가서 만들기는 여기에 당신이 필요한 것 코드의 시작입니다, 정말 쉽게

String longText = "your text goes here..."; 

SpannableString textViewContents = new SpannableString(longText); 
textViewContents.setSpan(new MyURLSpan(NextActivity.class), indexToStart, lengthOfClickArea, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE); 

myTextView.setText(textViewContents); 
+0

죄송합니다. 말씀 드리고 싶습니다 ... 추가하겠습니다. 그래서 저는 한 단어를 다른 활동에 연결하고 싶습니다. – Piezord

+0

@Piezord 몇 가지 예제 코드를 추가했습니다 :) (수동으로 작성 했으므로 일부는 실제로 컴파일하지 않고 컴파일하지 않을 것입니다) –

+0

감사합니다. 다음 줄에 오류가 있습니다 :'textViewContents.setSpan MyURLSpan (extras.class), indexToStart, lengthOfClickArea,'. 오류가 발생합니다 : 토큰에 대한 구문 오류, 잘못 배치 된 구문 (constructed) 위의 내용은 무엇을 의미합니까? – Piezord

0

단어 단위로 TextView를 만들고 FlowLayout에 추가 할 수 있습니다. 그런 다음 원하는보기에 OnClick 이벤트를 지정할 수 있습니다.

"This is a test"란 실제로는 레이아웃 (아마도 FlowLayout) 내에있는 4 개의 TextView로 구성됩니다.

이 SO 게시물에 FlowLayout에 대한 몇 가지 세부 사항을있다 :

How can I do something like a FlowLayout in Android?

0

나는 이것을 시도하지 않았지만 다음 힌트를 사용하면 성공할 수 있다고 생각합니다. txt.setText (Html.fromHtml ("... link ...")); txt.setMovementMethod (LinkMovementMethod.getInstance());

select a word on a tap in TextView/EditText

는 내가 그것을 도움이 될 것입니다 생각합니다.

관련 문제