2011-01-19 6 views
5

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

Intent i = new Intent(Activity1.this, Activity2.class); 
Activity1.this.startActivity(i); 

но теперь мне нужно, чтобы начать новый вид деятельности из экземпляра этого вида деятельности (потому что я не хочу, чтобы начать общую активность этого типа, мне нужно называть его конструктор для определения его атрибутов). Что-то вроде этого:

Activity2 instance = new Activity2(parameters); 
Intent i = new Intent(Activity1.this, instance); 
Activity1.this.startActivity(i); 

Возможно ли это?

+0

«(потому что я не хочу, чтобы начать общую активность этого типа, я должен назвать его конструктор, чтобы определить его атрибуты) "- это невозможно в Android. – CommonsWare

ответ

9

Я думаю, вам лучше добавить набор к вашим намерениям и прочитать информацию об этом. Вы передаете свои параметры этим комплектом.

пример:

Intent myIntent = new Intent(this, BlipImageSender.class); 
    Bundle paramets = new Bundle(); 

paramets.putString("YOUR_PARAM_IDENT","your_parameter_value"); 

myIntent.putExtras(paramets); 
this.startActivity(myIntent); 

и в своем классе:

String your_param_value = getIntent().getExtras().getString("YOUR_PARAM_IDENT"); 
+0

Большое спасибо nanne, он так отличается от классической Java! Однако я получаю исключение NullPointerException с помощью «sendInfo.getString (key)» в методе OnCreate моего класса ... я решил, заменив его на «(String) this.getIntent(). GetExtras(). Get (key)" – Oneiros

+0

Вы абсолютно правы! извините за это, я переименовал несколько var's, чтобы сделать его более читаемым и пропустил некоторые декальвации, и это пошло немного «хорошо». Я исправлю ответ для последующих поколений :) – Nanne

+0

спасибо: D он также работает с "this.getIntent(). GetStringExtra (key)" – Oneiros