Android 에 서 는 TextView 에 여러 개의 클릭 가능 한 텍스트 를 추가 합 니 다.

2827 단어 AndroidTextView
이 사례 는 안 드 로 이 드 에서 TextView 에 클릭 가능 한 텍스트 를 여러 개 추가 하 는 방법 을 보 여 준다.이 기능 은 안 드 로 이 드 소 셜 네트워크 서비스 제작 에서 매우 실 용적 가치 가 있다.모두 에 게 참고 하도록 공유 하 다.구체 적 으로 다음 과 같다.
많은 경우 에 우 리 는 소 셜 네트워크 서 비 스 를 사용 하 는 과정 에서 많 고 적 게 는 다른 사람의 댓 글 에 칭찬 을 할 수 있다.다음 그림 과 같다.

사용자 페이지 에 표 시 된 것 은 좋아요 만 누 른 사용자 의 이름 입 니 다.이 이름 을 누 르 면 이 사용자 의 홈 페이지 에 들 어 갈 수 있 습 니 다.다음은 비슷 한 효 과 를 실현 하 겠 습 니 다.
구체 적 인 코드 는 다음 과 같다.

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main);  
 
TextView mTextView = (TextView) rootView.findViewById(R.id.like_tv); 
 
  //         html,               
  StringBuilder sbBuilder = new StringBuilder(); 
  for (int i = 0; i < 10; i++) { 
    sbBuilder.append("username-" + i + "、"); 
  } 

  String likeUsers = sbBuilder.substring(0, sbBuilder.lastIndexOf("、")).toString(); 
  mTextView.setMovementMethod(LinkMovementMethod.getInstance()); 
  mTextView.setText(addClickablePart(likeUsers), BufferType.SPANNABLE); 

} 
/** 
* @param str 
* @return 
*/ 
private SpannableStringBuilder addClickablePart(String str) { 
  //        
  ImageSpan span = new ImageSpan(getActivity(), R.drawable.umeng_comm_like); 
  SpannableString spanStr = new SpannableString("p."); 
  spanStr.setSpan(span, 0, 1, Spannable.SPAN_INCLUSIVE_EXCLUSIVE); 
   
  SpannableStringBuilder ssb = new SpannableStringBuilder(spanStr); 
  ssb.append(str) ; 

  String[] likeUsers = str.split("、"); 

  if (likeUsers.length > 0) { 
    //      
    for (int i = 0; i < likeUsers.length; i++) { 
  final String name = likeUsers[i]; 
  final int start = str.indexOf(name) + spanStr.length(); 
  ssb.setSpan(new ClickableSpan() { 

    @Override 
    public void onClick(View widget) { 
   Toast.makeText(getView().getContext(), name, 
   Toast.LENGTH_SHORT).show(); 
    } 

    @Override 
    public void updateDrawState(TextPaint ds) { 
   super.updateDrawState(ds); 
   // ds.setColor(Color.RED); //        
   //       
   ds.setUnderlineText(false); 
    } 

  }, start, start + name.length(), 0); 
    } 
  } 
  return ssb.append(" " 
  + likeUsers.length + "     ."); 
} // end of addClickablePart 
다음 그림 과 같이 실행 효과:

본 고 에서 말 한 것 이 여러분 의 안 드 로 이 드 프로 그래 밍 에 도움 이 되 기 를 바 랍 니 다.

좋은 웹페이지 즐겨찾기