问一下在关于fragment的显示listview的问题

Android 码拜 4年前 (2015-11-28) 220次浏览
问一下, viewpage + fragment 实现如下图滑动的功能,在 viewpage中添加3个fragment
当要从数据库中取出数据后,在fragment 中把listview显示出来的时候出错
错误提示是: No enclosing instance of the type FActivity is accessible in scope
麻烦会的朋友帮忙回答,先谢了。
问一下在关于fragment的显示listview的问题
在 Factivity.java的 (com/example/activity/Factivity.java)
public class FActivity extends FragmentActivity {

private void InitViewPager() {

fragmentsList = new ArrayList<Fragment>();
pfragment = new PFragment();
poFragment = new PoFragment( );
topFragment = new TopFragment( );

fragmentsList.add(pfragment);
fragmentsList.add(poFragment);
fragmentsList.add(topFragment);

mViewpager.setAdapter(new ForumFragmentPagerAdapter(getSupportFragmentManager(),fragmentsList));
mViewpager.setCurrentItem(0);
mViewpager.setOnPageChangeListener(new MyOnPageChangeListener());
}
三个fragment都有相同的错误提示。
PFragment.java的目录为: com/example/fragment/PFragment.java

public class PFragment extends BaseFragment {

private void initViews(View view){

 mForAdapter = new ForAdapter (FActivity.this , list1);   //报错的地方 No enclosing instance of the type FActivity is accessible in scope
     mForAdapter.addlist(list1);
listView2.setAdapter(mForAdapter);

}
}
而ForAdapter.java 代码如下:
public class ForAdapter extends BaseAdapter {

public ForumAdapter( FActivity context,List<FSearch>list ) {
super();
this.context = context;
layoutInflater = (LayoutInflater)context.getSystemService(inflater);
this.list = list;
}
public void setFlagbusy( boolean busy ) {

}
public int getCount() {
return Forumlist.size();
}
public Object getItem( int position ) {
return position;
}
public long getItemId( int position ) {
return position;
}
……………….
}
解决方案:10分
mForAdapter = new ForAdapter (FActivity.this , list1);
改成
mForAdapter = new ForAdapter (getActivity() , list1);
解决方案:40分
你这是编译的错误还是运行的错误?
假如你的fragment不是内联类的话,FActivity.this应该编译不过吧。
假如fragment是内联类的话,运行的时候可能会有问题

CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明问一下在关于fragment的显示listview的问题
喜欢 (0)
[1034331897@qq.com]
分享 (0)