poojan9118
poojan9118

Reputation: 2373

android- calling Intent from an Inner class

i want to call a new activity from within an inner class which is defined in d class which extends Activity.... the piece of written in one of the methods of that Inner class is::

Intent intent = new Intent(this, Test2.class); startActivity(intent);

Test2 is placed inside the same package as my main clas is placed and eclipse is showing me d error "The constructor Intent(test.MyTimer, Class) is undefined".......

what is the solution??

Upvotes: 5

Views: 7429

Answers (2)

Pentium10
Pentium10

Reputation: 207863

Just use MyActivity.this like so:

Intent i = new Intent(MyActivity.this, MyActivity.class);

Upvotes: 14

Rob Stevenson-Leggett
Rob Stevenson-Leggett

Reputation: 35679

I'd pass the parent to the MyTimer class in the constructor then you can pass that to the Intent. The intent requires a class that derives from Context.

So your MyTimer could look like

public class MyActivity extends Activity
{
    private void StartTimer()
    {
        MyTimer timer = new MyTimer(this);
        timer.startIntent();
    }

    private class MyTimer
    {
        private Activity _context;
        public MyTimer(Activity c)
        {
            _context = c;
        } 
        public void startIntent()
        {
          Intent i = new Intent(_context, MyActivity.class);
          _context.startActivity(i);
        }
    }
}

Hope that helps.

Upvotes: 5

Related Questions