android textview 部分文字加颜色并可点击

来源:互联网 发布:最快的股票行情软件 编辑:程序博客网 时间:2024/05/21 10:57
Java代码  收藏代码
  1. package com.example.urlspantextviewclick;  
  2.   
  3. import android.os.Bundle;  
  4. import android.app.Activity;  
  5. import android.graphics.Color;  
  6. import android.text.Html;  
  7. import android.text.Spannable;  
  8. import android.text.SpannableString;  
  9. import android.text.Spanned;  
  10. import android.text.method.LinkMovementMethod;  
  11. import android.text.style.ClickableSpan;  
  12. import android.text.style.ForegroundColorSpan;  
  13. import android.view.Menu;  
  14. import android.view.View;  
  15. import android.widget.TextView;  
  16. import android.widget.Toast;  
  17.   
  18. public class MainActivity extends Activity {  
  19.   
  20.     private TextView t1;  
  21.       
  22.     @Override  
  23.     protected void onCreate(Bundle savedInstanceState) {  
  24.         super.onCreate(savedInstanceState);  
  25.         setContentView(R.layout.activity_main);  
  26.         t1=(TextView)findViewById(R.id.txt);  
  27.         CharSequence str=getText(R.string.hello_world);  
  28.         SpannableString spannableString1 = new SpannableString(str);  
  29.           
  30.           
  31.         spannableString1.setSpan(new ClickableSpan(){  
  32.             @Override  
  33.             public void onClick(View widget) {  
  34.                 Toast.makeText(getApplicationContext(), "who hit me", Toast.LENGTH_SHORT).show();  
  35.                   
  36.             }  
  37.         }, str.length()-3, str.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);  
  38.         spannableString1.setSpan(new ForegroundColorSpan(Color.RED),str.length()-3, str.length(),Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);  
  39.         t1.setText(spannableString1);  
  40.         t1.setMovementMethod(LinkMovementMethod.getInstance());  
  41.     }  
  42.   
  43.     @Override  
  44.     public boolean onCreateOptionsMenu(Menu menu) {  
  45.         // Inflate the menu; this adds items to the action bar if it is present.  
  46.         getMenuInflater().inflate(R.menu.main, menu);  
  47.         return true;  
  48.     }  
  49.   
  50. }  

 

  • UrlSpanTextViewClick.zip (1.4 MB)
0 0