1. Hast Du Lust, bei uns mitzuarbeiten und das AH-Team zu verstärken? Alle Details zu dieser aktuellen Herausforderung findest Du hier.
  1. Ceon, 23.09.2011 #1
    Ceon

    Ceon Threadstarter Neuer Benutzer

    Ich benutze Horizontal View Swiping with ViewPager: Android Developers Blog: Horizontal View Swiping with ViewPager

    Auf Basis:
    FragmentPagerSupport.java | Android Developers


    Durch drücken eines Buttons ändern sich ein paar Daten die durch ein Fragment angezeigt werden, ich möchte also die Änderung wirksam machen in dem ich das Fragment neu lade.

    Habe schon einiges versucht ...

    mAdapter.notifyDataSetChanged() funktioniert nicht.

    Code:
    public class Test extends FragmentActivity {
    	static final int NUM_ITEMS = 10;
    	MyAdapter mAdapter;
    	ViewPager mPager;
    
    	private int focusedPage = 0;
    
    	private class MyPageChangeListener extends
    			ViewPager.SimpleOnPageChangeListener {
    		@Override
    		public void onPageSelected(int position) {
    			focusedPage = position;
    		}
    	}
             
             //###########################################
    	public void onClickPostButton(final View sfNormal) {
                 // Daten ändern sich deshalb anschließend
                // Fragment neu laden
    	}
    
    	@Override
    	protected void onCreate(Bundle savedInstanceState) {
    		super.onCreate(savedInstanceState);
    		setContentView(R.layout.main);
    
    		mAdapter = new MyAdapter(getSupportFragmentManager());
    		Log.i("Pager", "mAdapter = " + mAdapter.toString());
    
    		mPager = (ViewPager) findViewById(R.id.pager);
    		if (mPager == null)
    			Log.i("Pager", "mPager = null");
    		else
    			Log.i("Pager", "mPager = " + mPager.toString());
    
    		Log.i("Pager", "Setting Pager Adapter");
    
    		mPager.setAdapter(mAdapter);
    		mPager.setOnPageChangeListener(new MyPageChangeListener());
    
    	}
    
    	public static class MyAdapter extends FragmentPagerAdapter {
    
    		public MyAdapter(FragmentManager fm) {
    			super(fm);
    			Log.i("Pager", "MyAdapter constructor");
    		}
    
    		@Override
    		public int getCount() {
    			Log.i("Pager", "MyAdapter.getCount()");
    			return NUM_ITEMS;
    		}
    
    		@Override
    		public Fragment getItem(int position) {
    			Log.i("Pager", "MyAdapter.getItem()");
    			return TestFragment.newInstance(position);
    		}
    	}
    
    	public static class TestFragment extends Fragment {
    
    		public static TestFragment newInstance(int position) {
    			Log.i("Pager", "TestFragment.newInstance()");
    			TestFragment fragment = new TestFragment();
    			Bundle args = new Bundle();
    			args.putInt("position", position);
    			fragment.setArguments(args);
    			return fragment;
    		}
    
    		@Override
    		public View onCreateView(LayoutInflater inflater, ViewGroup container,
    				Bundle savedInstanceState) {
    
    			LinearLayout fragmentItemLayout = null;
    
    			// Do Something
    
    			return fragmentItemLayout;
    
    		}
    
    	}
    }
    
    
    
     
  2. Ceon, 23.09.2011 #2
    Ceon

    Ceon Threadstarter Neuer Benutzer

    So gelöst. Hier meine Lösung: Man muss warum auch immer die getItemPosition() Methode des Adapters überschreiben:

    public int getItemPosition(Object object) {
    return POSITION_NONE;
    }

    Dann funktioniert mAdapter.notifyDataSetChanged()
     
Die Seite wird geladen...
Ähnliche Themen Forum Datum
[OFFEN] Fehlende Elemente im RecyclerView innerhalb eines Fragments Android App Entwicklung 01.09.2017
[ERLEDIGT] Android O Neue Fonts in XML Methode Android App Entwicklung 27.07.2017
[OFFEN] Fragment State nach Rotation merken Android App Entwicklung 30.06.2017
[ERLEDIGT] Wechsel von einem Fragment ins andere Android App Entwicklung 29.06.2017
[OFFEN] Fragmente für ViewPagerAdapter zusammenfassen Android App Entwicklung 04.06.2017
[ERLEDIGT] Fragmente in NavigationView Android App Entwicklung 27.05.2017
[INFO] Neue Playstore Richtlinien im Mai 2017 Android App Entwicklung 19.05.2017
[UMFRAGE/INFO/DISKUSSION] Kotlin, die neue Programmiersprache für Android Android App Entwicklung 18.05.2017
[OFFEN] Rückkehr aus Dialog Fragment. Wie? Android App Entwicklung 29.04.2017
[OFFEN] Wie kann ich mehrere Marker in eine MapView laden Android App Entwicklung 25.03.2017
Du betrachtest das Thema "Fragment neu laden" im Forum "Android App Entwicklung",