首页 新闻 会员 周边

需要在Fragment页面中写一个ViewPager,请教各位大神,怎么在Fragment中获取activity。新人,大神请解释的

0
悬赏园豆:50 [待解决问题]

public class zuire extends Fragment {
private TabPageIndicator indicator;
private ViewPager view_pager;
private myPageAdapter adapter;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.zuire);
//1、查找组件
indicator = (TabPageIndicator)findViewById(R.id.tab_page_indicator);
view_pager = (ViewPager)findViewById(R.id.view_pager);
//2、组织数据,标题头的数据
List<String> title = new ArrayList<String>();
title.add("最热");
title.add("最新");
//title.add("新闻");
// title.add("输入");
// title.add("金融");
// title.add("电脑");
// title.add("汽车");
List<Fragment> title_fragment = new ArrayList<Fragment>();
title_fragment.add(new zuireFragment());
title_fragment.add(new zuixinFragment());

//3、实例化ViewPager的适配器,
adapter = new myPageAdapter(getSupportFragmentManager(),title,title_fragment);
//4、为ViewPager设置适配器
view_pager.setAdapter(adapter);
//5、为TabPageIndicator设置ViewPager,作用就是将TabPageIndicator和ViewPager关联起来
indicator.setViewPager(view_pager, 0);
}
}

 

这个是fragment页面,在里面写ViewPager老出错。大神能不能帮我看看,

丫叁丫肆的主页 丫叁丫肆 | 初学一级 | 园豆:152
提问于:2016-04-05 10:08
< >
分享
所有回答(1)
0
getActivity();

 

写代码的小2B | 园豆:4371 (老鸟四级) | 2016-04-05 13:39

public class zuire extends Fragment{
private TabPageIndicator indicator;
private ViewPager view_pager;
private myPageAdapter adapter;

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.zuire, null);

//1、查找组件
indicator = (TabPageIndicator)getActivity().findViewById(R.id.tab_page_indicator);
view_pager = (ViewPager)getActivity().findViewById(R.id.view_pager);
//2、组织数据,标题头的数据
List<String> title = new ArrayList<String>();
title.add("最热");
title.add("最新");
//title.add("新闻");
// title.add("输入");
// title.add("金融");
// title.add("电脑");
// title.add("汽车");
List<Fragment> title_fragment = new ArrayList<Fragment>();
title_fragment.add(new zuireFragment());
title_fragment.add(new zuixinFragment());

//3、实例化ViewPager的适配器,
adapter = new myPageAdapter(getFragmentManager(),title,title_fragment);
//4、为ViewPager设置适配器
view_pager.setAdapter(adapter);
//5、为TabPageIndicator设置ViewPager,作用就是将TabPageIndicator和ViewPager关联起来
indicator.setViewPager(view_pager, 0);
return view;
}
}

 

这是加上getActivity()之后的方法。但是运行还是会抛异常,是不是我的getActivity()加错位置了

支持(0) 反对(0) 丫叁丫肆 | 园豆:152 (初学一级) | 2016-04-05 13:42

@丫叁丫肆: 

贴出异常信息看看。

支持(0) 反对(0) 写代码的小2B | 园豆:4371 (老鸟四级) | 2016-04-05 13:43

@写代码的小2B: 

 java.lang.RuntimeException就是这个异常  这个好像没办法上传图片。不过我异常我能看懂,就是说在这个里面找不到fragment。

支持(0) 反对(0) 丫叁丫肆 | 园豆:152 (初学一级) | 2016-04-05 13:49

@丫叁丫肆: 

找不到Fragment?贴完整异常信息,具体是哪一行代码报错?

支持(0) 反对(0) 写代码的小2B | 园豆:4371 (老鸟四级) | 2016-04-05 13:52

@写代码的小2B: 您给我个邮箱什么的吧 我把整个写的给您看看,要是方便的话。

支持(0) 反对(0) 丫叁丫肆 | 园豆:152 (初学一级) | 2016-04-05 13:56

@写代码的小2B: 刚刚仔细看了一下,并没有说具体代码哪一行出错,

04-05 13:44:31.109: E/AndroidRuntime(11723): Caused by: android.app.Fragment$InstantiationException: Trying to instantiate a class com.example.shiji.zuire that is not a Fragment

支持(0) 反对(0) 丫叁丫肆 | 园豆:152 (初学一级) | 2016-04-05 14:04

@丫叁丫肆: 

04-05 13:44:31.109: E/AndroidRuntime(11723): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.yatianxia/com.example.yatianxia.MainActivity}: android.view.InflateException: Binary XML file line #8: Error inflating class fragment

这个是异常

支持(0) 反对(0) 丫叁丫肆 | 园豆:152 (初学一级) | 2016-04-05 14:05

@丫叁丫肆: 

看这个异常应该是你的布局文件有错。

支持(0) 反对(0) 写代码的小2B | 园豆:4371 (老鸟四级) | 2016-04-05 14:10

@写代码的小2B: 这个fragment就是一个布局文件,就是这个方法错了。这是个fragment页面。在这个页面里再写一个viewpager。然而viewpager是需要继承fragmentactivity所以有点尴尬

支持(0) 反对(0) 丫叁丫肆 | 园豆:152 (初学一级) | 2016-04-05 14:26

@丫叁丫肆: 

fragment是可以嵌套fragment的。

//3、实例化ViewPager的适配器,
adapter = new myPageAdapter(getFragmentManager(),title,title_fragment);

这里getFragmentManager(),换成getChildFragmentManager()

支持(0) 反对(0) 写代码的小2B | 园豆:4371 (老鸟四级) | 2016-04-05 14:28

@写代码的小2B: 改过了 还是不行 这是异常

04-05 14:30:44.933: E/AndroidRuntime(13270): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.yatianxia/com.example.yatianxia.MainActivity}: android.view.InflateException: Binary XML file line #8: Error inflating class fragment

04-05 14:30:44.933: E/AndroidRuntime(13270): Caused by: android.app.Fragment$InstantiationException: Trying to instantiate a class com.example.shiji.zuire that is not a Fragment

支持(0) 反对(0) 丫叁丫肆 | 园豆:152 (初学一级) | 2016-04-05 14:31
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册