Не удается получить контекст для запуска намерения - PullRequest
0 голосов
/ 29 сентября 2011

Я создал отдельный класс для запуска и намерения, поскольку класс, из которого я хотел бы запустить намерение, является потоком, не наследует от активности и не запускает startActivity.Каждый раз, когда я запускаю приложение, я получаю исключение нулевого указателя для контекста.

public class ToLaunch extends Activity {
    public void launchScoreloop() {
        con.getApplicationContext();
        startActivity(new Intent(this, LeaderboardsScreenActivity.class));
    }
}

Ответы [ 2 ]

1 голос
/ 29 сентября 2011

Вы пишете Activity, и вы не переопределили метод onCreate().

public class ToLaunch extends Activity {
    @override
    protected void onCreate(Bundle savedInstanceState){
      super.onCreate(savedInstanceState);
      setContentView(R.layout.main);
     //Call your method here after a  button click cor example or something else
    }

    public void launchScoreloop() {
        con.getApplicationContext();
        startActivity(new Intent(this, LeaderboardsScreenActivity.class));
    }
}

обратитесь к этим двум урокам об использовании намерений для запуска другого занятия: tuto 1 tuto 2

И если вы хотите запуститьАктивность из другого класса, вы должны передать контекст второму классу следующим образом:

SecondClass instance = new SecondClass(this);

, и конструктор вашего SecondClass будет выглядеть примерно так:

public void SecondClass(Context _context){
   this.context = _context;
}

, а затем выможно запустить Avtivity с помощью контекста, который вы передали вашему SecondClass, например:

this.context.startActivity(....);
0 голосов
/ 29 сентября 2011

Если нить является внутренним классом внутри вашей деятельности, вы можете использовать

    startActivity(new Intent(YourActivity.this, LeaderboardsScreenActivity.class));

    If it is a separate class you can make a constructor that take context has constructor as argument and you can pass your activity context into that constructor


    Context con;
    public YourThread(Context context){
     con = context;
    }

и изнутри вашей деятельности при создании объекта потока

    YourThread thread = new YourThread(this);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...