Search code examples
androidtextviewcontext-switchingswitchers

How to make text clickable in TextSwitcher so that it can open another activity?


I have a Text Switcher in my app. Everything is working. My text is switching, but I want to open another activity when the text in the Text Switcher is clicked. How can I achieve this in android ??

Thanks in advance :)

Code of text switcher is ...

public class Course1 extends Activity
{
    private TextSwitcher mSwitcher;
    Button btnNext;

    // Array of String to Show In TextSwitcher
    String textToShow[]={"Main HeadLine","Your Message","New In Technology","New Articles","Business News","What IS New"};
    int messageCount=textToShow.length;
    // to keep current Index of text
    int currentIndex=-1;



    @Override
    protected void onCreate(Bundle savedInstanceState)
    {
                super.onCreate(savedInstanceState);

              setContentView(R.layout.course1);                       

                // get The references
                btnNext=(Button)findViewById(R.id.buttonNext);
                mSwitcher = (TextSwitcher) findViewById(R.id.textSwitcher);

                // Set the ViewFactory of the TextSwitcher that will create TextView object when asked
                mSwitcher.setFactory(new ViewFactory() {

                    public View makeView() {
                        // TODO Auto-generated method stub
                        // create new textView and set the properties like clolr, size etc
                        TextView myText = new TextView(Course1.this);
                        myText.setGravity(Gravity.TOP | Gravity.CENTER_HORIZONTAL);
                        myText.setTextSize(36);
                        myText.setTextColor(Color.BLUE);
                        return myText;
                    }
                });

                // Declare the in and out animations and initialize them 
                Animation in = AnimationUtils.loadAnimation(this,android.R.anim.slide_in_left);
                Animation out = AnimationUtils.loadAnimation(this,android.R.anim.slide_out_right);

                // set the animation type of textSwitcher
                mSwitcher.setInAnimation(in);
                mSwitcher.setOutAnimation(out);




                // ClickListener for NEXT button
                // When clicked on Button TextSwitcher will switch between texts
                // The current Text will go OUT and next text will come in with specified animation
                btnNext.setOnClickListener(new View.OnClickListener() {

                    public void onClick(View v) {
                        // TODO Auto-generated method stub
                        currentIndex++;
                        // If index reaches maximum reset it
                        if(currentIndex==messageCount)
                            currentIndex=0;
                        mSwitcher.setText(textToShow[currentIndex]);
                    }
                });

    }
}

Solution

  • try this

    mSwitcher.setOnClickListener(new View.OnClickListener() {
    
                        public void onClick(View v) {
                            // TODO Auto-generated method stub
                            if(currentIndex==0){
                            Intent i = new Intent(getApplicationContext(),NextActivity.class);
                            startActivity(i);
                            } else if(currentIndex==1){
                             Intent i = new Intent(getApplicationContext(),NextActivity.class);
                             startActivity(i);
                            }
                        }
                    });