Viewpager不会更新/加载xml项目

时间:2012-01-15 09:43:26

标签: android android-viewpager instant

我用viewpager的onclicklistsner问题解决了这个问题,但现在我注意到它依赖于XML Layout文件中的所有元素。

我使用该教程实现了一个ViewPager:tutsplus

现在我遇到了问题,我在XML中定义的所有对象都是实例化的正确(在findViewById之后的调试模式下不是null)但是我无法回答它们。 为了更好地理解我的PagerAdapter:

class MyPagerAdapter extends PagerAdapter {

    public int getCount() {
        return 3;
    }

    public Object instantiateItem(View collection, int position) {

        LayoutInflater inflater = (LayoutInflater) collection.getContext()
                .getSystemService(Context.LAYOUT_INFLATER_SERVICE);

        int resId = 0;
        switch (position) {
        case 0:
            resId = R.layout.settings_view;

            break;
        case 1:
            resId = R.layout.push_view;
            break;
        case 2:
            resId = R.layout.listen_view;
            break;

        }
        View view = inflater.inflate(resId, 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) {
        return arg0 == ((View) arg1);

    }

    @Override
    public Parcelable saveState() {
        return null;
    }
    public int getItemPosition(Object object) {
        return POSITION_NONE;
    }


}

这里是我的适配器实现和一些示例代码:

 ViewPager myPager = (ViewPager)findViewById(R.id.pager);
        adapter = new MyPagerAdapter();
       myPager.setAdapter(adapter);
       myPager.setCurrentItem(0);

Spinner spinner =(Spinner)listenView.findViewById(R.id.Dashboard_chooser);     Button push =(Button)pushview.findViewById(R.id.pushbutton);

ArrayAdapter spinnerArrayAdapter = new ArrayAdapter(getApplicationContext(),android.R.layout.simple_spinner_item, si);


            spinner.setAdapter(spinnerArrayAdapter);



push.setOnClickListener(new OnClickListener() {


            public void onClick(View v) {

//do something
});

Button和Spinner都没有做任何事情。它们都被实例化正确,但是我不能单击buton,也不能让Spinner填充SpinnerItems数组。

在Debu模式中,我查了一下,它们都被实例化,SpinnerItemArray(si)获取它的值等等。

顺便说一下,在我实现ViewPager之前所有的东西都工作了,按钮也在设置android:onClick in XML然后在代码中定义方法时工作但是对于Spinner不起作用,所以我认为它必须与instantiateItem方法或类似的方法有关。

这里有人知道这个问题吗? 如果有人可以提供帮助,那就太酷了。 你的Flo