2013-11-08 3 views
0

У меня есть json для serializable claas, тогда я использую его для заполнения списка, и все работает нормально, но я хочу заполнить textview на другой xml-странице одним из сериализуемых объектов, и я прочитал, чтобы лучше всего это сделать это намерение связки, но я сделал что-то неправильно.Аннулирование строки намерения Android

public class FeedItem implements Serializable { 

    private String title; 
    private String date; 
    private String attachmentUrl; 
    private String id; 
    private String content; 
    private String url; 

    public String getUrl() { 
     return url; 
    } 

    public void setUrl(String url) { 
     this.url = url; 
    } 

    public String getContent() { 
     return content; 
    } 

    public void setContent(String content) { 
     this.content = content; 
    } 

    public String getId() { 
     return id; 
    } 

    public void setId(String id) { 
     this.id = id; 
    } 

    public String getTitle() { 
     return title; 
    } 

    public void setTitle(String title) { 
     this.title = title; 
    } 

    public String getDate() { 
     return date; 
    } 

    public void setDate(String date) { 
     this.date = date; 
    } 

    public String getAttachmentUrl() { 
     return attachmentUrl; 
    } 

    public void setAttachmentUrl(String attachmentUrl) { 
     this.attachmentUrl = attachmentUrl; 
    } 




    @Override 
    public String toString() { 
     return "[ title=" + title + ", date=" + date + "]"; 
    } 

    ArrayList<FeedItem> all_thumbs = new ArrayList<FeedItem>(); 
    all_thumbs.add(new FeedItem(title); 
    Intent intent = new Intent(title); 

    Bundle extras = new Bundle(); 

    extras.putSerializable("title",title); 
    intent.putExtras(extras); 

} 

и в классе, где я хочу, чтобы использовать его

public void updateList() { 

    TextView infoz = (TextView) getView().findViewById(R.id.infoz); 
    Bundle args; 
    getArguments().getSerializable(title); 
+0

Что случилось? Вы получаете какое-то исключение? – Blackbelt

+0

Используйте Parcelable вместо Serializable: http://stackoverflow.com/questions/5550670/benefit-of-using-parcelable-instead-of-serializing-object – JJ86

+0

в классе, где я хочу его использовать: заголовок не может быть разрешен переменная. в сериализации класса нескольких маркеров в этой строке \t - синтаксической ошибки на маркер «» титул «», недействительны FormalParameterList \t - Синтаксическая ошибка в знак (ы), неуместной конструкции (ы) \t - Синтаксис ошибки на лексемы «заголовок» , VariableDeclaratorId ожидается после \t этого маркера нескольких маркеров в этой строке \t - Синтаксическая ошибка на знак «добавить», = ожидаемый после \t этого маркера \t - Синтаксис ошибки на знак (ы), неуместную конструкцию (ов) –

ответ

0

Вместо этого используйте:

public void updateList() { 

    TextView infoz = (TextView) getView().findViewById(R.id.infoz); 
    Intent intent = getIntent(); 
    Bundle extras = intent.getExtras(); 
    String title = (String) extras.getSerializable("title"); 
+0

и как Корректно установить его в Serializable? –

+0

Что вы пытаетесь достичь. Вы пытаетесь передать весь класс FeedItem из родительской активности в свой фрагмент? – frogmanx

0

Если вы хотите передать примитивного datatyped значения (String, Int, длинные, float и т. д.), тогда не нужно использовать Bundle.putExtra (KEY, Serialized Object) и Bundle.getSerializable (KEY). Вы можете использовать Bundle.putExtra (KEY, примитивные данные);

Если вы хотите передать объект класса намерению/расслоение, то вам необходимо реализовать Сериализуемыми/оформленный в этом классе, как:

public class Test implements Serializable 
{ 
    private static final long serialVersionUID = 1L; 
    int test1; 
} 

, а затем вы можете передать этот экземпляр объекта намерению, как:

myIntent.putExtra(KEY, new Test()); 

Для дополнительной проверки разъяснений pass seriable object in intent example

+0

** в feeditem сериализуемый класс ** public void save() { \t \t Intent i = new Intent(); \t i.putExtra (название, название); \t } ** фрагмент класс ** Цель намерения = getActivity(). GetIntent(); \t \t \t Bundle extras = intent.getExtras(); \t \t \t String title = (String) extras.getSerializable ("title"); \t \t \t \t infoz.setText (название); Но сила приложения закрывается, почему? –

+0

http://pastebin.com/C126W1sj Я написал код здесь, может у вас посмотреть? –

+0

вам просто нужно написать \t i.putExtra («title», title) вместо \t i.putExtra (название, название); –

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