【linkify】linkify的小例子

public class MyActivty extends Activity {
  /** Called when the activity is first created. */
  @Override
  public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);

    final TextView myTextView = (TextView)findViewById(R.id.text_view);
    
    /**
     * Listing 5-7: Creating custom link strings in Linkify 
     */
     // Define the base URI.
     String baseUri = "content://com.paad.earthquake/earthquakes/";
    
     // Contruct an Intent to test if there is an Activity capable of 
     // viewing the content you are Linkifying. Use the Package Manager
     // to perform the test.
     PackageManager pm = getPackageManager();
     Intent testIntent = new Intent(Intent.ACTION_VIEW, Uri.parse(baseUri));
     boolean activityExists = testIntent.resolveActivity(pm) != null;
    
     // If there is an Activity capable of viewing the content
     // Linkify the text.
     if (activityExists) {
       int flags = Pattern.CASE_INSENSITIVE;
       Pattern p = Pattern.compile("\\bquake[\\s]?[0-9]+\\b", flags);
       Linkify.addLinks(myTextView, p, baseUri);
     }
 
     // Uncomment to apply the match and transform filters
//     if (activityExists) {
//       int flags = Pattern.CASE_INSENSITIVE;
//       Pattern p = Pattern.compile("\\bquake[\\s]?[0-9]+\\b", flags);
//       Linkify.addLinks(myTextView, p, baseUri,
//           new MyMatchFilter(), new MyTransformFilter());
//     }
  }
  
  /**
   * Listing 5-8: Using a Linkify Match Filter 
   */
  class MyMatchFilter implements MatchFilter {
    public boolean acceptMatch(CharSequence s, int start, int end) {
      return (start == 0 || s.charAt(start-1) != '!');
    }
  }
  
  /**
   * Listing 5-9: Using a Linkify Transform Filter
   * 
   */
  class MyTransformFilter implements TransformFilter {
    public String transformUrl(Matcher match, String url) {
      return url.toLowerCase().replace(" ", "");
    }
  }
}
<?xml version="1.0" encoding="utf-8"?>
<resources>
  <string name="hello">Check out the quake that occurred today at quake 1 and quake2 but not !quake3</string>
  <string name="app_name">CPA4AD_Ch05_Linkify</string>
</resources>


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值