AutoLinkTextView
AutoLinkTextView is TextView that supports Hashtags (#), Mentions (@) , URLs (http://), Phone and Email automatically detecting and ability to handle clicks.
The current minSDK version is API level 14 Android 4.0 (ICE CREAM SANDWICH).
Features
- Default support for Hashtag, Mention, Link, Phone number and Email
- Support for custom types via regex
- Ability to set text color
- Ability to set pressed state color
Download
Gradle:
compile 'com.github.armcha:AutoLinkTextView:0.1.1'
Setup and usage
Add AutoLinkTextView to your layout
<com.luseen.autolinklibrary.AutoLinkTextView
android:id="@+id/active"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
AutoLinkTextView autoLinkTextView = (AutoLinkTextView) findViewById(R.id.active);
Set up mode or modes
autoLinkTextView.addAutoLinkMode(
AutoLinkMode.MODE_PHONE);
Set text to AutoLinkTextView
autoLinkTextView.setAutoLinkText(getString(R.string.long_text));
Set AutoLinkTextView click listener
autoLinkTextView.setAutoLinkOnClickListener(new AutoLinkOnClickListener() {
@Override
public void onAutoLinkTextClick(AutoLinkMode autoLinkMode, String matchedText) {
}
});
Customizing
AutoLinkModes
AutoLinkMode.MODE_PHONE
AutoLinkMode.MODE_HASHTAG
AutoLinkMode.MODE_URL
AutoLinkMode.MODE_MENTION
AutoLinkMode.MODE_EMAIL
AutoLinkMode.MODE_CUSTOM
if you use custom mode, you should also add custom regex,
autoLinkTextView.setCustomRegex("\\sAllo\\b");
Note:Otherwise MODE_CUSTOM
will return MODE_URL
You can also use multiple types
autoLinkTextView.addAutoLinkMode(
AutoLinkMode.MODE_HASHTAG,
AutoLinkMode.MODE_PHONE,
AutoLinkMode.MODE_URL,
AutoLinkMode.MODE_MENTION,
AutoLinkMode.MODE_CUSTOM);
You can also change text color for autoLink mode
autoLinkTextView.setHashtagModeColor(ContextCompat.getColor(this, R.color.yourColor));
autoLinkTextView.setPhoneModeColor(ContextCompat.getColor(this, R.color.yourColor));
autoLinkTextView.setCustomModeColor(ContextCompat.getColor(this, R.color.yourColor));
autoLinkTextView.setUrlModeColor(ContextCompat.getColor(this, R.color.yourColor));
autoLinkTextView.setMentionModeColor(ContextCompat.getColor(this, R.color.yourColor));
autoLinkTextView.setEmailModeColor(ContextCompat.getColor(this, R.color.yourColor));
And also autoLink text pressed state color
autoLinkTextView.setSelectedStateColor(ContextCompat.getColor(this, R.color.yourColor));