沉寂這么多天,一直在搞安卓開發,剛有些眉目,今天分享一個textview 部分點擊事件的實現方法。這個功能主要用到的是SpannableString 這個安卓自帶類。詳細代碼如下:
我們注重客戶提出的每個要求,我們充分考慮每一個細節,我們積極的做好網站建設、成都網站設計服務,我們努力開拓更好的視野,通過不懈的努力,創新互聯建站贏得了業內的良好聲譽,這一切,也不斷的激勵著我們更好的服務客戶。 主要業務:網站建設,網站制作,網站設計,成都小程序開發,網站開發,技術開發實力,DIV+CSS,PHP及ASP,ASP.Net,SQL數據庫的技術開發工程師。
@Override
public View getView(int position, View convertView, ViewGroup parent) {
// TODO Auto-generated method stub
LinearLayout ll =null;
if(convertView==null){
ll=(LinearLayout) View.inflate(context,R.layout.comment_format_setting ,null);
}else{
ll = (LinearLayout) convertView;
}
TextView name = (TextView) ll.findViewById(R.id.username_text); //用戶名稱
TextView time = (TextView) ll.findViewById(R.id.time_text); //時間
TextView commcontent_text = (TextView) ll.findViewById(R.id.commcontent_text); //評論主體內容
TextView blogcontent_text = (TextView) ll.findViewById(R.id.blogcontent_text); //微博內容主體
name.setText(AllDateList.get(position).get("uname"));
time.setText(AllDateList.get(position).get("stime"));
commcontent_text.setText( getClickableSpan( position)); //設置SpannableString 為textview的內容
commcontent_text.setMovementMethod(LinkMovementMethod.getInstance()); //一定要加上,這個是為了激活點擊事件,不加則不會觸發點擊事件。
blogcontent_text.setText(AllDateList.get(position).get("pcon"));
return ll;
}
private SpannableString getClickableSpan(int position)
{
OnClickListener l = new OnClickListener(){
@Override
public void onClick(View v)
{
Toast.makeText(context, "Click Success", Toast.LENGTH_SHORT).show();
Log.v("atme", "點擊了");
}
};
SpannableString spanableInfo = new SpannableString(AllDateList.get(position).get("scon"));
int start = 0;
int end = 4;
spanableInfo.setSpan(new Clickable(l), start, end,Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
return spanableInfo;
}
class Clickable extends ClickableSpan implements OnClickListener{
private final OnClickListener mListener;
public Clickable(View.OnClickListener l){
mListener = l;
}
/** 設置顯示格式**/
@Override
public void updateDrawState(TextPaint ds) {
super.updateDrawState(ds);
ds.setColor(context.getResources().getColor(R.color.atuser));
ds.setUnderlineText(false); //設置下劃線
}
@Override
public void onClick(View v){
mListener.onClick(v);
}
}
紅色部分標注是一些要注意的地方,尤其 是激活點擊事件,一定要加上,就是因為這個沒加浪費了我好長時間,如果要想在一個textview 中加多個點擊事件,剛添加多個
spanableInfo.setSpan(new Clickable(l), start, end,Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
當前文章:androidtextview如何實現像新浪微博@用戶的點擊事件
文章出自:http://vcdvsql.cn/article4/gjiiie.html
成都網站建設公司_創新互聯,為您提供網站排名、虛擬主機、App開發、網站維護、定制開發、動態網站
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯