Android-вызов Intent из внутреннего класса - PullRequest
5 голосов
/ 09 июля 2010

Я хочу вызвать новое действие изнутри внутреннего класса, который определен в классе d, который расширяет Activity .... кусок, написанный одним из методов этого внутреннего класса: ::

Intent intent = new Intent (это, Test2.class); startActivity (намерение);

Test2 помещен в тот же пакет, что и мои основные классы, и затмение показывает мне d ошибка "Конструктор Intent (test.MyTimer, Class) не определен" .......

в чем решение ??

Ответы [ 2 ]

13 голосов
/ 09 июля 2010

Просто используйте MyActivity.this вот так:

Intent i = new Intent(MyActivity.this, MyActivity.class);
4 голосов
/ 09 июля 2010

Я передаю родительский класс классу MyTimer в конструкторе, а затем вы можете передать его в Intent.Намерению требуется класс, производный от Context.

Так что ваш MyTimer может выглядеть как

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);
        }
    }
}

Надеюсь, что это поможет.

...