
Ergebnis 1 bis 1 von 1
-
Bin neu hier
- 21.11.2013, 10:49
- #1
[FONT=verdana]Hallo,[/FONT]
[FONT=verdana]Ich habe ein Fragment (YearsFragment) mit einer Liste. Wenn ich ein Element der Liste anklick wird ein neues Fragment (EventsFragment) ausgeführt. Der Loader des neuen Fragments ladet eine neue Liste. Soweit so gut.[/FONT]
[FONT=verdana]Wenn ich jetzt zurück auf das erste Fragement (YearsFragment) gehe und ich das selbe Element wieder anklicke ladet das EventsFragment die liste neu, jedoch würde ich gerne mit den alten schon geladenen Daten arbeiten.[/FONT]
[FONT=verdana]EventsActivity:[/FONT]
[FONT=verdana]Code:public class EventsActivity extends FragmentActivity implements YearsFragment.OnYearSelectedListener, EventsFragment.OnEventSelectedListener{ private boolean screenSizeLarge; private EventsFragment eventFrag = null; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.years_events); // Check whether the activity is using the layout version with the fragment_container FrameLayout (small Display). if (findViewById(R.id.fragment_container) != null) { screenSizeLarge = false; //one-pane YearsFragment firstFragment = new YearsFragment(); firstFragment.setArguments(getIntent().getExtras()); // Add the fragment to the 'fragment_container' FrameLayout getSupportFragmentManager().beginTransaction().add(R.id.fragment_container, firstFragment).commit(); }else{ screenSizeLarge = true; //two-pane } } @Override public void onYearSelected(Years year) { // The user selected the year from the YearsFragment if (screenSizeLarge) { // two-pane layout // Capture the events fragment from the activity layout eventFrag = (EventsFragment) getSupportFragmentManager().findFragmentById(R.id.event_fragment); // Call a method in the EventFragment to update its content eventFrag.updateEventsView(year); } else { //one-pane layout if(eventFrag == null){ eventFrag = new EventsFragment(); } Bundle args = new Bundle(); args.putInt("year", Integer.parseInt(year.getYear())); eventFrag.setArguments(args); FragmentTransaction transaction = getSupportFragmentManager().beginTransaction(); // Replace whatever is in the fragment_container view with this fragment, // and add the transaction to the back stack so the user can navigate back transaction.replace(R.id.fragment_container, eventFrag); transaction.addToBackStack(null); // Commit the transaction transaction.commit(); } }}
[/FONT]
[FONT=verdana]YearsFragment:[/FONT]
Code:[FONT=verdana] public class YearsFragment extends ListFragment implements LoaderManager.LoaderCallbacks<List<Years>>{ YearsAdapter adapter; // The container Activity must implement this interface so the frag can deliver messages OnYearSelectedListener mCallback; public interface OnYearSelectedListener { /** Called by YearsFragment when a list item is selected */ public void onYearSelected(Years year); } public void onActivityCreated(Bundle savedInstanceState) { super.onActivityCreated(savedInstanceState); } @Override public void onResume() { super.onResume(); getListView().setChoiceMode(ListView.CHOICE_MODE_SINGLE); adapter = new YearsAdapter(getActivity()); setListAdapter(adapter); setEmptyText("No Data Here"); setListShown(false); getLoaderManager().initLoader(0, null, this); } @Override public void onAttach(Activity activity){ super.onAttach(activity); try{ mCallback = (OnYearSelectedListener) activity; } catch (ClassCastException e){ throw new ClassCastException(activity.toString() + "must implement OnYearSelectedListener"); } } @Override public void onListItemClick(ListView l, View v, int position, long id) { mCallback.onYearSelected(adapter.getItem(position)); } //implements Loader @Override public Loader<List<Years>> onCreateLoader(int arg0, Bundle arg1) { Log.i("YearsFragment","YearsFragment.onCreateLoader"); return new YearsLoader(getActivity()); } @Override public void onLoadFinished(Loader<List<Years>> arg0, List<Years> data) { Log.i("YearsFragment","YearsFragment.onLoadFinished"); adapter.setData(data); if(isResumed()){ setListShown(true); }else{ setListShownNoAnimation(false); } } @Override public void onLoaderReset(Loader<List<Years>> arg0) { Log.i("YearsFragment","YearsFragment.onLoaderReset"); adapter.setData(null); }} [/FONT]
[/FONT]
[FONT=verdana]EventsFragment:[/FONT]
Code:[FONT=verdana] public class EventsFragment extends ListFragment implements LoaderManager.LoaderCallbacks<List<Events>>{ EventsAdapter adapter; private int year; public EventsFragment(){ year = Calendar.getInstance().get(Calendar.YEAR); } // The container Activity must implement this interface so the frag can deliver messages OnEventSelectedListener mCallback; public interface OnEventSelectedListener { /** Called by YearsFragment when a list item is selected */ public void onEventSelected(Events event); } public void onActivityCreated(Bundle savedInstanceState) { super.onActivityCreated(savedInstanceState); getListView().setChoiceMode(ListView.CHOICE_MODE_SINGLE); Log.i("EventsFragment","EventsFragment.onActivityCreated"); adapter = new EventsAdapter(getActivity()); setListAdapter(adapter); setEmptyText("No Data Here"); setListShown(false); } @Override public void onResume() { super.onResume(); Bundle args = this.getArguments(); if(args != null){ year = args.getInt("year"); } updateEventsView(year); // The activity has become visible (it is now "resumed"). } @Override public void onAttach(Activity activity){ super.onAttach(activity); try{ mCallback = (OnEventSelectedListener) activity; } catch (ClassCastException e){ throw new ClassCastException(activity.toString() + "must implement OnEventsSelectedListener"); } } @Override public void onListItemClick(ListView l, View v, int position, long id) { mCallback.onEventSelected(adapter.getItem(position)); } public void updateEventsView(Years year) { this.year = Integer.parseInt(year.getYear()); getLoaderManager().initLoader(this.year, null, this); } public void updateEventsView(int year) { this.year = year; getLoaderManager().initLoader(this.year, null, this); } //Loader @Override public Loader<List<Events>> onCreateLoader(int arg0, Bundle arg1) { Log.i("EventsFragment","EventsFragment.onCreateLoader"); return new EventsLoader(getActivity(),this.year); } @Override public void onLoadFinished(Loader<List<Events>> arg0, List<Events> data) { Log.i("EventsFragment","EventsFragment.onLoadFinished"); adapter.setData(data); if(isResumed()){ setListShown(true); }else{ setListShownNoAnimation(false); } } @Override public void onLoaderReset(Loader<List<Events>> arg0) { Log.i("EventsFragment","EventsFragment.onLoaderReset"); adapter.setData(null); } } [/FONT]
[/FONT]
[FONT=verdana]Wie soll ich das mit onResume angehen?[/FONT]
[FONT=verdana]LG, Herr. P.[/FONT]
Ähnliche Themen
-
GPRS Verbindung iPaq HQ3970 mit GSM/GPRS expansion
Von beni im Forum PlaudereckeAntworten: 3Letzter Beitrag: 05.03.2003, 13:27 -
Displayschutz für iPaq mit Expansion Pack
Von Draven im Forum PlaudereckeAntworten: 15Letzter Beitrag: 18.02.2003, 06:51 -
GPRS Einstellungen mit iPAQ3970 und GSM/GPRS Expansion Pack
Von dan71 im Forum PlaudereckeAntworten: 26Letzter Beitrag: 25.12.2002, 17:16 -
gprs Verbindung mit pocket pc phone edition
Von hpschoch im Forum PlaudereckeAntworten: 4Letzter Beitrag: 16.11.2002, 11:24 -
Erfahrungen mit Sunrise, Swisscom und Orange
Von Marco im Forum PlaudereckeAntworten: 3Letzter Beitrag: 01.09.2002, 09:50
Pixel 10 Serie mit Problemen:...