Code Bye

viewpage +fragment的切换后空白无数据

 

viewpage + fragment 实现如下图滑动的功能,在 viewpage中添加3个fragment

当要从数据库中取出数据后,在fragment 中把listview显示出来。

默认是选中第一个 “幽默段子”, 可以显示listview的数据,但是当点击 “工作”后,再切换回 “幽默段子”,这时候,”幽默段子“下面

是 空白的。正常情况,它应该是有数据的。

之前版主已经提示过,先存起来,然后点击后,在显示出来。

而查了相关资料,可以用 setUserVisibleHint()  方法来处理,通过这个函数的 boolean值,判断不可见的时候 进行数据的保存。

但是 由于这个是获取网络数据库的数据的,所以要开启一个线程,在线程的run()函数里边调用 数据库的函数。

1 这个是要在线程里边 的run()函数 调用 list1 = mHttpApi.search(string);  那么 这个线程 在哪个位置写以下的代码呢?(很容易产生空指针)

mForumThread= new ForumThread();

mForumThread.start();

//返回的数据是 list比如 id:1  title: you  content:buy   id:2  tile:me ,content: sell 等等

2 由于 代码…api/Httpapi.java   文件是设置连接数据库的接口函数。比如有  search()

那么就要创建一个实例 比如  mHttpApi = new HttpApi();

然后才可以 调用 search()函数。 mHttpApi.search();

那么这个 mHttpApi = new HttpApi();   要放在哪个位置呢?(因为很容易产生 nullpoint exception)

麻烦会的朋友帮忙回复,谢谢啦

在 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””实现显示listview数据

public class PFragment extends BaseFragment {

private void initViews(View view){

mForAdapter = new ForAdapter (FActivity.this , list1);

mForAdapter.addlist(list1);

listView2.setAdapter(mForAdapter);

}

}

#1

18分

initViewPager方法最后加句:mViewpager.setOffscreenPageLimit(4)试试。
#2

22分

检查一下fragment的生命周期,还有更新adapter的时机等等

CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明viewpage +fragment的切换后空白无数据