studio putextra programacion móviles getintent from desarrollo data curso aplicaciones activity android android-fragments parse.com

android - putextra - Cómo pasar lista<objeto> entre fragmento



putextra fragment android (2)

Creé mi diseño con viewPager y TabLayout:

public class HomeFragment extends Fragment { public static TabLayout tabLayout; public static ViewPager viewPager; public static int int_items = 3 ; public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View inflatedView = inflater.inflate(R.layout.fragment_home, container,false); viewPager = (ViewPager) inflatedView.findViewById(R.id.viewpager); int [] drawables = {R.drawable.home,R.drawable.street,R.drawable.map}; Bundle bundle = new Bundle(); final SearchFragment searchFragment = new SearchFragment(); final CardFragment cardFragment = new CardFragment(); final MapFragment mapFragment = new MapFragment(); viewPager.setAdapter(new FragmentPagerAdapter(getChildFragmentManager()) { public Fragment getItem(int position) { if(position == 0) return searchFragment; else if(position ==1) return cardFragment; else return mapFragment; } @Override public int getCount() { return int_items; } }); tabLayout = (TabLayout) inflatedView.findViewById(R.id.tabs); tabLayout.setupWithViewPager(viewPager); for (int i = 0; i < tabLayout.getTabCount(); i++) { tabLayout.getTabAt(i).setIcon(drawables[i]); } return inflatedView; } @Override public void onAttach(Context context) { super.onAttach(context); } @Override public void onDetach() { super.onDetach(); } }

ahora necesito hacer este código en Asynctask (publico solo el método doInBackground ()):

List <ParseObject> result; ParseQuery<ParseObject> query; protected Void doInBackground(final Void... params) { try { query = ParseQuery.getQuery("Trains"); result = query.find(); } catch (com.parse.ParseException e) { e.printStackTrace(); } }

así que ahora quiero pasar el resultado List <ParseObject> result; en SearchFragment , CardFragment y MapFragment .

Es posible usar un paquete? ¿O debo usar otro método?


Como la mayoría de los desarrolladores se confunden con los parámetros de rendimiento de Serialización y Parcelable, pongo la explicación a continuación

Ahora viene cómo implementar la interfaz Parceleable

Crear clase de objeto que desea pasar implementar interfaz Parcelable

public class ContactPojo implements Parcelable{ private String name; private String job_title; public void setName(String name) { this.name = name; } public void setJob_title(String job_title) { this.job_title = job_title; } public String getName() { return name; } public String getJob_title() { return job_title; } private ContactPojo(Parcel parcel){ name=parcel.readString(); job_title=parcel.readString(); } @Override public int describeContents() { return 0; } @Override public void writeToParcel(Parcel parcel, int flags) { parcel.writeString(name); parcel.writeString(job_title); } public static final Parcelable.Creator<ContactPojo> CREATOR = new Parcelable.Creator<ContactPojo>() { public ContactPojo createFromParcel(Parcel in) { return new ContactPojo(in); } public ContactPojo[] newArray(int size) { return new ContactPojo[size]; }}; }

Ahora rellene la clase pojo haciendo lo siguiente

ContactPojo contactPojo= new ContactPojo(); contactPojo.setName("name"); contactPojo.setJob_title("name");

enviarlo a la próxima intención por este

Intent intent=new Intent(this, DetailView.class); intent.putExtra("Data", contactPojo);

Recuperación de datos en el próximo intento por próximos pasos

ContactPojo contactPojo=new ContactPojo(); contactPojo=getIntent().getParcelableExtra("Data"); Log.i(AppConstants.APPUILOG, "Name: " + contactPojo.getName() );


Solo hazlo así también lo usé. Crea una clase de objeto cuya lista quieres pasar

public class PostDetails implements Serializable { private String postUrl; private String postType; public String getPostUrl() { return postUrl; } /** * * @param postUrl * The post_url */ public void setPostUrl(String postUrl) { this.postUrl = postUrl; } /** * * @return * The postType */ public String getPostType() { return postType; } /** * * @param postType * The post_type */ public void setPostType(String postType) { this.postType = postType; } }

Intento acaba de poner

List<PostDetails> postDetailses; intent.putExtra("vdata", (Serializable) postDetailses);

Para recibir en el lado de la actividad

postDetailsList= (List<PostDetails>) getIntent().getSerializableExtra("vdata");