Sorry för bump, men hittar ingen lösning...
Jag har i princip följt detta exemplet.
Min instantiateItem ser ut så här:
Kod:
public Object instantiateItem(View pager, int pos ) {
ViewPager vp = (ViewPager) pager;
LayoutInflater layoutinflater = activity.getLayoutInflater();
View nv = layoutinflater.inflate(RArray[pos], null);
vp.addView(nv, pos);
return nv;
}
}
Teorier varför det inte fungerar jag haft hitils:
Jag behöver skicka med en viewgroup till inflatern ist. för null ?
Dock tolkar jag det som att det är ifall man vill lägga in sin ny-inflateade view i en parent-view, men det är väl det jag gör med vp.addView ..?
Förösker jag skicka med vp som ViewGroup till inflatern får jag runtimefel..
Skall jag, som jag gör i koden ovan hämta en inflater från min aktivitet?
Det verkar gå lika bra (dåligt) att köra:
Kod:
View nv = (View) ViewPager.inflate(pager.getContext(), RArray[pos], null);
Skapar jag en ny inflater då, eller blir det samma som via activity.getLayoutInflater?
Mina layout-XML:er är:
main.xml - innehåller linearlayout, viewpagerindicator.TitlePageIndicator och
ViewPager.
page1.xml, page2.xml, page3.xml innehåller mina layouts för varje sida.
Det går som sagt bra att inflate:a dessa och visa dem i min viewpager, men jag kan inte interagera med dess widgets.
Nu upptäckte jag att jag kan ha widgets i mina layouter med samma id utan att få något fel.
Ex. jag kan skapa button1 på både sida 2 och 3 och sen bygga/köra programmet utan varning/fel, är det väntat?
Det känns som jag satt upp mitt projekt fel på något sätt, om det inte blir fel av att ha ett icke-unikt id på min knapp så känns det rimligt att jag inte kan lyssna efter click på den...
Jag har även försökt med att hämta knappen (se första posten) genom:
Kod:
Button butt1 = (Button) pager.findViewById(R.id.button1);
istället för via aktivitetens findViewById.
Som sagt så är jag väldigt ny på detta, så det kan vara något riktigt grundläggande jag förbisett.
Ideer?