1. Nimm jetzt an unserem AGM - Gewinnspiel teil - Informationen zum M1, A2 und A8 findest Du hier, hier und hier!
  1. mc-bain, 12.04.2012 #1
    mc-bain

    mc-bain Threadstarter Neuer Benutzer

    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