我正在重建我的应用程序设计,并希望使用ViewPager。实现不是问题,但我无法弄清楚如何在页面内更改我的TextViews。谷歌搜索的时间也没有帮助我。也许你可以帮助我。我只需要知道如何更改textViews的文本,文本颜色和内容。 main.xml包含我的ViewPager,speiseplan.xml包含ScrollView中的TextViews,每个都带有一个id。
main.xml中:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<android.support.v4.view.ViewPager
android:layout_height="fill_parent"
android:layout_width="fill_parent"
android:id="@+id/awesomepager" />
</LinearLayout>
我不会在这里编写整个speiseplan.xml,因为它只包含一个ScrollView和一堆TextView。
Java中的实现如下:
public class Speiseplan extends Activity {
private ViewPager myPager;
private static int NUM_VIEWS = 14;
private MyPagerAdapter myAdapter;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
myAdapter = new MyPagerAdapter();
myPager = (ViewPager) findViewById(R.id.awesomepager);
myPager.setAdapter(myAdapter);
}
private class MyPagerAdapter extends PagerAdapter{
@Override
public int getCount() {
// TODO Auto-generated method stub
return NUM_VIEWS;
}
@Override
public Object instantiateItem(View collection, int position){
LayoutInflater inflater = (LayoutInflater) collection.getContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View view = inflater.inflate(R.layout.speiseplan, null);
((ViewPager) collection).addView(view, 0);
return view;
}
@Override
public void destroyItem(View arg0, int arg1, Object arg2){
((ViewPager) arg0).removeView((View) arg2);
}
@Override
public boolean isViewFromObject(View arg0, Object arg1) {
// TODO Auto-generated method stub
return arg0 == ((View) arg1);
}
@Override
public Parcelable saveState() {
return null;
}
}
}
现在我如何访问我的TextView并更改它们。如何将用户sqiping检测到另一个页面。
感谢您的帮助!
答案 0 :(得分:1)
我认为你必须在instantiateItem()
方法中更改TextViews。它的工作方式几乎与其他适配器中的getView()
方法类似。
PagerAdapter不会像其他适配器(如BaseAdapter或ArrayAdapter)那样自动回收视图。您可能希望自己实施回收。看看the documentation,它提供了一些关于如何做到这一点的提示。
要检测滑动,您可以使用OnPageChangeListener界面。