Android - ViewPager在点击listview项目时不会让我更改页面

时间:2015-12-31 15:12:47

标签: java android listview android-fragments android-viewpager

尝试在android中创建新闻源应用程序,从url获取json并使用costum适配器将其解析为listview。我的目标是使用"浏览器视图将页面切换到第三个片段"它显示来自给定网址的新内容。 问题是,当用户点击列表视图中的任何项目时,viewpager无法更改其页面。

每个片段有三个单独的布局,一个" main"与viewpager在其中的片段。 onclick-event附加到listview:

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
                         final Bundle savedInstanceState) {

    View mainview = inflater.inflate(R.layout.main, container, false);
    viewPager = (ViewPager) mainview.findViewById(R.id.vpPager);

    View view = inflater.inflate(R.layout.second_fragment, container, false);

    listView = (ListView) view.findViewById(R.id.listView);

    listView.setAdapter(new costumAdapter(this.getContext(), R.layout.list_row, refresh()));

    listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
        @Override
        public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
            Log.i("Clicked item: ", String.valueOf(position));  //works
            model m = (model) listView.getItemAtPosition(position);
            System.out.println( m.url); //works

            viewPager.setCurrentItem(2, true); //Doesnt work...
        }
    });

    return view;
}

refresh()方法返回json数据,因此我们可以将它放在listview中。

1 个答案:

答案 0 :(得分:0)

修正了没有inflater的问题:

            ViewPager viewPager = (ViewPager) getActivity().findViewById(R.id.vpPager);
            viewPager.setCurrentItem(1, true);