亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

Android中實(shí)現(xiàn)為TextView添加多個(gè)可點(diǎn)擊的文本

 更新時(shí)間:2014年09月11日 10:32:15   投稿:shichen2014  
這篇文章主要介紹了Android中實(shí)現(xiàn)為TextView添加多個(gè)可點(diǎn)擊的文本,可實(shí)現(xiàn)類似Android社交軟件顯示點(diǎn)贊用戶并通過用戶名稱進(jìn)入該用戶主頁的功能,是非常實(shí)用的技巧,需要的朋友可以參考下

本文實(shí)例展示了Android中實(shí)現(xiàn)為TextView添加多個(gè)可點(diǎn)擊的文本的方法。該功能在Android社交軟件的制作中非常具有實(shí)用價(jià)值。分享給大家供大家參考。具體如下:

很多時(shí)候我們在使用社交軟件的過程中多多少少會(huì)為別人的帖子點(diǎn)贊,如下圖所示:

可以看到用戶頁面顯示出來的只是點(diǎn)了贊的用戶的名稱,點(diǎn)擊這些名稱可以進(jìn)入到該用戶的主頁。下面我們就來實(shí)現(xiàn)類似的效果。

具體代碼如下:

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main);  
 
TextView mTextView = (TextView) rootView.findViewById(R.id.like_tv); 
 
  // 構(gòu)造多個(gè)超鏈接的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) { 
  // 第一個(gè)贊圖標(biāo) 
  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) { 
    // 最后一個(gè) 
    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); // 設(shè)置文本顏色 
   // 去掉下劃線 
   ds.setUnderlineText(false); 
    } 

  }, start, start + name.length(), 0); 
    } 
  } 
  return ssb.append("等" 
  + likeUsers.length + "個(gè)人贊了您."); 
} // end of addClickablePart 

運(yùn)行效果如下圖所示:

希望本文所述對大家的Android程序設(shè)計(jì)有所幫助

相關(guān)文章

最新評論