Android Program to Demonstrate a Transform Filter

This Android Program demonstrates a Transform Filter in Android using Java.

Here is source code of the Program demonstrate a Transform Filter in Android. The program is successfully compiled and run on a Windows system using Eclipse Ide. The program output is also shown below.

The Transform Filter lets you modify the implicit URI generated by matching link text. Decoupling the link text from the target URI gives you more freedom in how you display data strings to your users.
Here in this source code when a user clicks on either on GOOGLE or LINKIFY or SANFOUNDRY they all are converted to lower case when searching in web browser.

Main Activity

 
package com.example.transform_filter;
 
import java.util.regex.Matcher;
import java.util.regex.Pattern;
 
import android.os.Bundle;
import android.app.Activity;
import android.text.util.Linkify;
import android.text.util.Linkify.TransformFilter;
import android.view.Menu;
import android.widget.TextView;
 
public class MainActivity extends Activity {
 
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        TransformFilter myTransformFilter = new TransformFilter() {
            @Override
            public String transformUrl(Matcher match, String url) {
                // TODO Auto-generated method stub
                return url.substring(1).toLowerCase();
            }
        };
 
        TextView text = (TextView) findViewById(R.id.textview1);
        Pattern pattern3 = Pattern.compile("\\![a-zA-Z]+");
        text
        .setText("press one of these words to search it on google:"
                + " !GOOGLE !LINKIFY !SANFOUNDRY");
        Linkify.addLinks(text, pattern3,
                "http://www.google.ie/search?q=", null, myTransformFilter);
 
    }
 
    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.main, menu);
        return true;
    }
 
}

Activity_Main.xml

advertisement
advertisement
 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context=".MainActivity" >
 
    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/hello_world"
        android:id="@+id/textview1" />
 
</RelativeLayout>

Capture

Capture1

Note: Join free Sanfoundry classes at Telegram or Youtube

san

Sanfoundry Global Education & Learning Series – 100+ Java Android Tutorials.

If you wish to look at all Tutorials, go to Java Android Tutorials.

advertisement
If you find any mistake above, kindly email to [email protected]

advertisement
advertisement
Subscribe to our Newsletters (Subject-wise). Participate in the Sanfoundry Certification contest to get free Certificate of Merit. Join our social networks below and stay updated with latest contests, videos, internships and jobs!

Youtube | Telegram | LinkedIn | Instagram | Facebook | Twitter | Pinterest
Manish Bhojasia - Founder & CTO at Sanfoundry
Manish Bhojasia, a technology veteran with 20+ years @ Cisco & Wipro, is Founder and CTO at Sanfoundry. He lives in Bangalore, and focuses on development of Linux Kernel, SAN Technologies, Advanced C, Data Structures & Alogrithms. Stay connected with him at LinkedIn.

Subscribe to his free Masterclasses at Youtube & discussions at Telegram SanfoundryClasses.