2011-12-18 5 views
0

Как передать и получить «myobject1» между двумя действиями?Андроид намерения - проездные данные

Первая активность:

private ArrayList<Custom> myobject1 = new ArrayList<Custom>(); 
... 
i.putExtra("myobject1", myobject1); 

Вторая активность:

results =(ArrayList<Custom>) getIntent().getSerializableExtra("myobject1"); 

Вот мой Custom.class:

public class Custom implements Comparable<Custom>{ 


    private String big; 
    private String small; 

    public Custom(String n,String d) 
    { 
     big = n; 
     small = d; 

    } 
    public String getFirst() 
    { 
     return big; 
    } 
    public String getSecond() 
    { 
     return small; 
    } 

    @Override 
    public int compareTo(Custom o) { 
     if(this.big != null) 
      return this.big.toLowerCase().compareTo(o.getFirst().toLowerCase()); 
     else 
      throw new IllegalArgumentException(); 
    } 
} 

В этот момент я получаю сообщение об ошибке: E/AndroidRuntime (8032): java.lang.RuntimeException: Посылка: не удалось маршалировать значение

+0

Я думаю, что Custom должен быть Serializable – poitroae

+0

Как это сделать ?? – Dikobraz

+0

@Dikobraz Чтобы сделать это Serializable, просто реализуйте интерфейс 'Serializable' для вашего класса' Custom'. – Roshnal

ответ

1

Чтобы передать значение от Activity другому, необходимо, чтобы Class объекта, который вы пытаетесь передать, должен реализовывать интерфейс Parcelable. Вы можете найти более подробную информацию здесь http://developer.android.com/reference/android/os/Parcelable.html. Если вам нужно что-то более конкретное, пожалуйста, стреляйте в него!