Действие перед startActivity () - PullRequest
0 голосов
/ 22 июля 2010

Я новичок в разработке для Android, и у меня возникла проблема при создании нового действия.

Я хочу использовать свое действие перед его запуском.Например, я попробовал это:

MyActivity menu = new MyActivity();
menu.setXmppreception(reception);
Intent intent = new Intent(Screen.this,MyActivity.class);
Screen.this.startActivity(intent);

Но мои «menu» и «MyActivity.class» - это не одно и то же.Следовательно, я попробовал это:

MyActivity menu = new MyActivity();
menu.setXmppreception(reception);
Intent intent = new Intent(Screen.this,menu);
Screen.this.startActivity(intent);

Но это не работает ... У вас есть решение, чтобы помочь мне?

Спасибо за помощь и извините за плохой английский.

Ответы [ 2 ]

2 голосов
/ 22 июля 2010

Вы не можете делать это так, как хотите, если вы хотите передавать данные между действиями, вы должны использовать дополнительные функции, и вы можете передавать только сериализуемые элементы.

Первый контекст (может быть «Деятельность / Сервис» и т. Д.)

У вас есть несколько вариантов:

1) Используйте Связку от Намерения :

Intent mIntent = new Intent(this, Example.class);
Bundle extras = mIntent.getExtras();
extras.putString(key, value);  

2) Создать новый пакет

Intent mIntent = new Intent(this, Example.class);
Bundle mBundle = new Bundle();
mBundle.putString(key, value);
mIntent.putExtras(mBundle);

3) Используйте метод быстрого доступа putExtra () для Intent

Intent mIntent = new Intent(this, Example.class);
mIntent.putExtra(key, value);

Новый контекст (может быть Activity / Service и т. Д.)

Intent myIntent = getIntent(); // this getter is just for example purpose, can differ
if (myIntent !=null && myIntent.getExtras()!=null)
     String value = myIntent.getExtras().getString(key);
}

ПРИМЕЧАНИЕ: Пакеты имеют методы "get" и "put" для всех примитивных типов, Parcelables и Serializables. Я просто использовал строки в демонстрационных целях.

1 голос
/ 22 июля 2010

вам не нужно создавать новое действие самостоятельно, система Android сделает это за вас.Если вы хотите перейти от Screen Activity к MyActivity, вы можете сделать это:

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

, а затем, в вашем MyClass Java-файле, в методе onCreate вы можете сделать:

this.setXmppreception(reception);

Таким образом, я думаю, вы получили то, что хотели, нет?

...