2016-09-02 2 views
0

В настоящее время у меня есть ArrayList, который я хотел передать другому действию. Я уже применил getParcelableArrayList, но передал null в другое действие. Я проверяю массив на null, это не так. В текущей деятельности, прежде чем я пройду, по крайней мере.ArrayList передать null, используя Bundle

Это мой код:

RecyclerViewOffline.java

Toast.makeText(context,"Clicked", Toast.LENGTH_SHORT).show(); 

Intent intent = new Intent(view.getContext(),OfflineActivity.class); 

Log.d("Contexts Test : ", fileContents.get(holder.getLayoutPosition()).getTitle()); 

Bundle bundle = new Bundle(); 
//bundle.putParcelableArrayList("link",fileContents); 
bundle.putParcelableArrayList("ArrayList",fileContents); 
bundle.putInt("position",holder.getLayoutPosition()); 

intent.putExtra("bundle",bundle); 
view.getContext().startActivity(intent); 

Мой приемный конец:

OfflineActivity.java

Bundle extras = getIntent().getBundleExtra("bundle"); 

if(extras != null) { 
    this.fileContents = extras.getParcelableArrayList("ArrayList"); 
    layoutPosition = extras.getInt("position"); 
    Log.d("Contexts Test Offline: ",""+ fileContents.get(layoutPosition).getTitle()); 
    } 
else{} 
+0

Какой тип элемента 'fileContents' содержит? –

+0

Что происходит, когда вы делаете это: 'getIntent(). GetExtras(). GetParcelableArrayList (" fileContents ")' –

+0

Вы посмотрели на [это] (http://stackoverflow.com/questions/18469267/parcelable-arraylist-passed -partially-with-null-elements/18505607 # 18505607) –

ответ

1

Как я могу видеть

Вы вратаря добавить ArrayList в Parcelable в методе и снаружи, а застройщик.

Это решит вашу проблему.

0

Вы можете передать ArrayList<E> таким же образом, если E типа Serializable.

Вы можете позвонить по телефону putExtra (String name, Serializable value) намерения для хранения и getSerializableExtra (String name) для извлечения.

Пример:

Intent intent = new Intent(view.getContext(), OfflineActivity.class); 
intent.putExtra("ArrayList", fileContents); 
intent.putExtra("position",holder.getLayoutPosition()); 
view.getContext().startActivity(intent); 

В другой деятельности:

Intent i = getIntent(); 
int position = i.getIntExtra("position",0); 
ArrayList<String> myList = (ArrayList<String>) i.getSerializableExtra("ArrayList"); 
Смежные вопросы