Rackor
- Forum-Beiträge: 19
01.11.2013, 17:33:23 via Website
01.11.2013 17:33:23 via Website
Hallo, ich habe ein Problem mit meinem Fragment System.
In einer activity werden mehrere Fragmente angezeigt...bei click auf eins, wird die geräte-interne Gallerie aufgerufen, ein bild wird ausgewählt, über einen asynctask decodiert, und dieser soll dann über eine Methode der activity ein neues Fragment mit dem Foto anlegen..doch hier ist das Problem..beim starten des Gallery intents wird anscheinend die activity zerstört, und es kann kein Fragment geaddet werden, weil die falsche Instanz der activity vorhanden ist, bzw, die ArrayList mit den Fragments weg ist...wie kann ich dieses Problem lösen?
activity:
Methode der Activity zum hinzufügen eines neues Fragments mit dem Bild erhalten durch den asynctask
In einer activity werden mehrere Fragmente angezeigt...bei click auf eins, wird die geräte-interne Gallerie aufgerufen, ein bild wird ausgewählt, über einen asynctask decodiert, und dieser soll dann über eine Methode der activity ein neues Fragment mit dem Foto anlegen..doch hier ist das Problem..beim starten des Gallery intents wird anscheinend die activity zerstört, und es kann kein Fragment geaddet werden, weil die falsche Instanz der activity vorhanden ist, bzw, die ArrayList mit den Fragments weg ist...wie kann ich dieses Problem lösen?
activity:
1protected void onCreate(Bundle savedInstanceState) {
2 super.onCreate(savedInstanceState);
3 setContentView(R.layout.viewpager_layout_activity);
4
5 Intent intent = getIntent();
6 String USID = intent.getExtras().getString("USID");
7 profilePic = intent.getExtras().getParcelable("profilePic");
8 pics = intent.getParcelableArrayListExtra("profilePics");
9
10 ArrayList<NameValuePair> nameValuePair = new ArrayList<NameValuePair>();
11 nameValuePair.add(new BasicNameValuePair("USID", USID));
12
13 fragments.add(new ScreenSlidePageFragment().newInstance(profilePic, true, pics, 0, fragments));
14 fragments.add(new ScreenSlidePageFragment().newInstance(profilePic, false, pics, 1, fragments));
15
16 mPager = (ViewPager) findViewById(R.id.pager);
17 mPagerAdapter = new ScreenSlidePagerAdapter(getSupportFragmentManager(), profilePic, pics);
18 mPager.setAdapter(mPagerAdapter);
19
20}
2 super.onCreate(savedInstanceState);
3 setContentView(R.layout.viewpager_layout_activity);
4
5 Intent intent = getIntent();
6 String USID = intent.getExtras().getString("USID");
7 profilePic = intent.getExtras().getParcelable("profilePic");
8 pics = intent.getParcelableArrayListExtra("profilePics");
9
10 ArrayList<NameValuePair> nameValuePair = new ArrayList<NameValuePair>();
11 nameValuePair.add(new BasicNameValuePair("USID", USID));
12
13 fragments.add(new ScreenSlidePageFragment().newInstance(profilePic, true, pics, 0, fragments));
14 fragments.add(new ScreenSlidePageFragment().newInstance(profilePic, false, pics, 1, fragments));
15
16 mPager = (ViewPager) findViewById(R.id.pager);
17 mPagerAdapter = new ScreenSlidePagerAdapter(getSupportFragmentManager(), profilePic, pics);
18 mPager.setAdapter(mPagerAdapter);
19
20}
Methode der Activity zum hinzufügen eines neues Fragments mit dem Bild erhalten durch den asynctask
1public void savePic(Bitmap bitmap){
2 pics.add(bitmap);
3 fragments.add(new ScreenSlidePageFragment().newInstance(profilePic, false, pics, fragments.size(), fragments));
4 mPagerAdapter.notifyDataSetChanged();
5}
2 pics.add(bitmap);
3 fragments.add(new ScreenSlidePageFragment().newInstance(profilePic, false, pics, fragments.size(), fragments));
4 mPagerAdapter.notifyDataSetChanged();
5}
Empfohlener redaktioneller Inhalt
Mit Deiner Zustimmung wird hier ein externer Inhalt geladen.
Mit Klick auf den oben stehenden Button erklärst Du Dich damit einverstanden, dass Dir externe Inhalte angezeigt werden dürfen. Dabei können personenbezogene Daten an Drittanbieter übermittelt werden. Mehr Infos dazu findest Du in unserer Datenschutzerklärung.