0

您好我正在尝试使用 viewpager。

我的问题是我无法从滑动视图中找到视图,我得到了 NPE。

这是我定义视图的代码:

@Override
public void onPageSelected(int arg0) {
    // TODO Auto-generated method stub

    focusedView = mPager.getChildAt(arg0);

    button = (ImageButton) focusedView.findViewById(R.id.button);
    button.setOnClickListener(this);
}

我在这条线上得到了 NPE:

button.setOnClickListener(this);

我所有的视图滑动视图都有一个带有“按钮”ID的按钮。

我也试过这个:

@Override
public void onPageSelected(int arg0) {
    // TODO Auto-generated method stub

    button = (ImageButton) mPager.findViewById(R.id.button);
    button.setOnClickListener(this);
}

我也来到了NPE。

如何从 pageviewer 中的视图中找到视图?

4

2 回答 2

1

而是处理片段内的点击事件,例如,您可以在方法中执行此操作public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState)

于 2013-10-17T11:44:41.107 回答
0

您可能在活动或片段中有此代码。

在活动或片段上为您的按钮声明一个变量,在orfinal中获取对它的引用,然后您将能够在.onCreateonResumeonPageSelected

示例(不完整)代码:

public class YourActivity extends Activity {

    private final Button button;

    @Override
    protected void onResume() {

         button = (Button) findViewById(R.id.button);

    }


    // view pager
    @Override
    public void onPageSelected(int arg0) {

        focusedView = mPager.getChildAt(arg0);

        button.setOnClickListener(this);
    }

}
于 2013-10-17T11:46:25.227 回答