1. Nimm jetzt an unserem 2. ADVENT-Gewinnspiel teil - Alle Informationen findest Du hier!

Viewpager Problem

Dieses Thema im Forum "Android App Entwicklung" wurde erstellt von mc-bain, 12.04.2012.

  1. mc-bain, 12.04.2012 #1
    mc-bain

    mc-bain Threadstarter Neuer Benutzer

    Beiträge:
    13
    Erhaltene Danke:
    0
    Registriert seit:
    10.12.2011
    Hallo,
    ich verwende den Viewpager, um mich "wischend" von Woche zu Woche in einem Kalender zu angeln.
    Dies habe ich so gelöst:
    Code:
     public Object instantiateItem(View collection, int position) {   
        
                LayoutInflater inflater = (LayoutInflater) collection.getContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE);  
                View page = inflater.inflate(mResId, null);            
                
                ListView lv = (ListView) page.findViewById(R.id.listView1);
    
                String[] from = new String[]{"Caption"};
                int[] to = new int[]{R.id.textView1};         
                
             
                    ArrayList<HashMap<String, String>> myListing = new ArrayList<HashMap<String, String>>();;
                    
                    for (int j=0; j<=5; j++) {
                         HashMap<String, String> item = new HashMap<String, String>();
                         item.put("Caption", "Zeile " + String.valueOf(j));
                        
                         myListing.add(item);
                    }
                
                                
                    SimpleAdapter adapter = new SimpleAdapter(
                            Viewpager2Activity.this,
                            myListing,
                            R.layout.item,
                            from,
                            to );
                                    
                    
                    lv.setAdapter(adapter);                    
                
                ((ViewPager) collection).addView(page, 0);                   
                
                return page;
            }
    Wie aus dem Code hervorgeht, hole ich mir bei jeder Instanzierung die Listview und befülle anschließend diese (Die Befüllung der Listview geschieht eigentlich über einen Webservice, ich habe aber aus Beispielgründen einfach eine Map über eine For-Schleife erzeugt). Somit erziele ich den gewünschten Effekt, dass bei jedem "Wischen" die Listview dynamisch neu erzeugt und bestückt wird.
    Leider wird beim start der App die instantiateItem Methode 3 Mal automatisch aufgerufen, was darin resultieren würde, dass 3 Mal die aktuelle Woche geladen werden würde. Hat jemand eine Idee wie ich das Problem lösen könnte, bzw. eleganter lösen könnte?

    Vielen Dank.
    Gruß
    mc
     

Diese Seite empfehlen