欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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)入該用戶主頁(yè)的功能,是非常實(shí)用的技巧,需要的朋友可以參考下

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

很多時(shí)候我們?cè)谑褂蒙缃卉浖倪^程中多多少少會(huì)為別人的帖子點(diǎn)贊,如下圖所示:

可以看到用戶頁(yè)面顯示出來的只是點(diǎn)了贊的用戶的名稱,點(diǎn)擊這些名稱可以進(jìn)入到該用戶的主頁(yè)。下面我們就來實(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)行效果如下圖所示:

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

相關(guān)文章

最新評(píng)論