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>