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(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); 。 } } |
|
#118分 |
initViewPager方法最后加句:mViewpager.setOffscreenPageLimit(4)试试。
|
#222分 |
检查一下fragment的生命周期,还有更新adapter的时机等等
|