2013-08-17 3 views
1

Обычный способ начать деятельность являетсяНачало активности от объекта

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

Есть ли способ, чтобы начать активность от объекта? .. как

SecondActivity var = new SecondActivity(); 
var.start(); 

Нечто подобное ..? !

+2

Нет, вам понадобится ссылка на «Контекст» и использовать первый метод «startActivity». – nhaarman

+0

Почему вы хотите, чтобы это сделали? –

+0

Вам нужна ссылка на активность, из которой вы запускаете другую. Во всяком случае, почему вы хотите это сделать? – mjosh

ответ

2

Просто передайте контекст вашего CustomObject и начать активность, используя его:

public class CustomObject { 

    Context c; 
    // and some other fields here... 

    public CustomObject(Context c) { 
     this.c = c; 
    } 

    public void startActivity() { 

     Intent intent = new Intent(c, SecondActivity.class); 
     c.startActivity(intent); 
    } 

    // and some other methods here... 
} 

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

CustomObject obj = new CustomObject(this); 
obj.startActivity(); 
0

Я думаю, что вы могли бы иметь это в обратном направлении , Похоже, вы должны отправить ссылку на объект, содержащий ваши данные предпочтений от одного от одного действия к другому. Вы можете сделать это, используя методы setXxxExtra() в классе Intent.

Чтобы отправить данные со второго действия на первое действие, сначала необходимо запустить второе действие, используя startActivityForResult(), а затем переопределить onActivityResult() в вашей основной деятельности. The Android developer pages есть a very good example about how to do this.

Смежные вопросы