1

我用 viewpager 解决了 onclicklistsner 问题,但现在我注意到它取决于 XML 布局文件中的所有元素。

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

现在我遇到了问题,我在 XML 中定义的所有对象都正确实例化(在 findViewById 等之后的 Debuggin 模式下不为空),但我无法引用它们。为了更好地理解它,我的 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)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 都没有做任何事情。它们都被正确实例化,但我无法单击按钮,也无法让 Spinner 填充 SpinnerItems 数组。

在 Debu 模式下,我查看了它们两个都被实例化, SpinnerItemArray (si) 得到它的值等等。

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

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

4

1 回答 1

0

好的,用那个链接解决了

http://code.google.com/p/ratebeerforandroid/source/browse/RateBeerForAndroid/src/com/ratebeer/android/gui/fragments/SearchFragment.java#486

于 2012-01-17T20:23:05.100 回答