2010-04-06 4 views
7

У меня есть класс2, который задействован class1 при создании кликов. Мне нужно передать некоторые параметры/объекты от class1 до класс2. Я знаю только стандартный способ, который не имеет возможности передавать параметры.Android: прохождение параметров между классами

// launch the full article 
Intent i = new Intent(this, Class2.class); 

startActivity(i); 

ответ

14

Вы можете использовать Intent.putExtra (который использует Bundle) для передачи дополнительных данных.

Intent i = new Intent(this, Class2.class); 
i.putExtra("foo", 5.0f); 
i.putExtra("bar", "baz"); 
startActivity(i); 

Затем, когда вы находитесь внутри вашего нового Activity:

Bundle extras = getIntent().getExtras(); 
if(extras !=null) 
{ 
float foo = extras.getFloat("foo"); 
String bar = extras.getString("bar"); 
} 

Это позволяет передавать основные данные деятельности. Однако вам может понадобиться немного больше работы для передачи произвольных объектов.

+1

Это означает, что могут быть переданы только простые типы (int, String, double), но не классы? Даже BigMap нельзя передать? – Yang

+0

Вы также можете передавать сериализуемые и «дополнительные» объекты. http://developer.android.com/reference/android/content/Intent.html Я осмотрюсь, чтобы увидеть, что я могу найти, чтобы облегчить передачу объектов. Одно из соображений состоит в том, чтобы создать статическое поле в классе активности, которое вы можете установить для ссылки объекта перед началом действия. –

+0

Используйте универсал. Это делает его очень чистым и легким: https://github.com/beplaya/Wagon – beplaya

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