Wednesday, 24 April 2013

Using Spannable String in Android

SpannableString can be used to style texts in textview. You can style individual words in textview.

                            TextView tv = (TextView) findViewById(; 
                            String myString = "Hello World";

                            SpannableString  ss=  new SpannableString(myString);
                            ss.setSpan(new StyleSpan(Typeface.BOLD), 0, ss.length(), 0);
                            //make the spannable string bold.
                            //first parameter is to style the text
                            //second parameter is 0 indicating the index from which the text should be styled.
                            //third parameter is the legth of the spannable string.                           
            ss.setSpan(new StyleSpan(Typeface.ITALIC), 0, ss.length(), 0);
                            //make the spannable string italic
            ss.setSpan(new ForegroundColorSpan(Color.BLUE), 0, ss.length(), 0);   
                            //change the color of the spannable string     

Make Spannable String Clickable

      ss.setSpan(MyClickableSpan(ss) , 0, ss.length(), 0);

      class MyClickableSpan extends ClickableSpan

                    String clicked;
                    //Constructor to receive the clicked text
                    public MyClickableSpan(String string) {
            clicked =string;
                    // action to be performed on click 
                    public void onClick(View tv) {
                    Toast.makeText(MainActivity.this,clicked ,Toast.LENGTH_SHORT).show();   

                    //update the drawable state of the text  
                    public void updateDrawState(TextPaint ds) {
                    //set text color 
                    //set stroke width   
                    // set to false to remove underline

No comments:

Post a Comment