2014-01-18 3 views
0

Я пытаюсь передать переменную (из класса «Уровень») в другую активность, но Eclipse отказывается ее принять.Eclipse не разрешает переменную с намерением

Intent i = new Intent("LevelSpelen"); 
i.putExtra("speelveld", level1); 
startActivity(i); 

Это ошибка Eclipse, дает мне: Метод putExtra (String, Boolean) в типе Intent не применяется для аргументов (String, уровень).

Почему я не могу передать эту переменную в другое действие?

+0

Ошибка должна указывать вам, что именно не так, что вы неправильно вызываете метод. Обратите внимание, что это не имеет ничего общего с «Eclipse» и все, что связано с сигнатурой метода вашего метода 'putExtra (...)'. –

+0

Я знаю об этом, но как я могу его решить? Я не могу найти подпись для объекта – Matt

+2

Поскольку метод putExtra (String, Object) не существует. Однако вы можете позволить вашему классу Level реализовать интерфейс Serializable или Parcelable и вызвать 'putExtra (имя строки, значение Serializable)' –

ответ

0

Если вы реализуете интерфейс Serializable в своем классе, он работает.

Код для класса

public class CustomClass implements Serializable{ 

private static final long serialVersionUID = 1L; 
0

Метод putExtra обычно используется для примитивных типов данных. Если вы хотите, чтобы два действия использовали объект с одними и теми же данными, вы можете сделать одну из двух вещей:

1) Передайте атрибуты (как примитивные типы данных в Экстра) объекта во второе действие и создайте экземпляр объекта.

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

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