问一下, viewpage + fragment 实现如下图滑动的功能,在 viewpage中添加3个fragment
当要从数据库中取出数据后,在fragment 中把listview显示出来的时候出错
错误提示是: No enclosing instance of the type FActivity is accessible in scope
麻烦会的朋友帮忙回答,先谢了。
。
在 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;
}
……………….
}
当要从数据库中取出数据后,在fragment 中把listview显示出来的时候出错
错误提示是: No enclosing instance of the type FActivity is accessible in scope
麻烦会的朋友帮忙回答,先谢了。
在 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);
改成
mForAdapter = new ForAdapter (getActivity() , list1);
解决方案:40分
你这是编译的错误还是运行的错误?
假如你的fragment不是内联类的话,FActivity.this应该编译不过吧。
假如fragment是内联类的话,运行的时候可能会有问题
假如你的fragment不是内联类的话,FActivity.this应该编译不过吧。
假如fragment是内联类的话,运行的时候可能会有问题