第二次加载ListView无法加载

fxfxfxfxw 2016-07-24 01:21:19
第一次打开程序,ListView是正常加载的

第二次点击主页时,ListView就不在了

MainActivity:
public class MainActivity extends AppCompatActivity{

private RadioGroup radioGroup;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Fragment fragment=new ViewPagerFragment();
getSupportFragmentManager().beginTransaction()
.add(R.id.Linear,fragment)
.commit();
radioGroup=(RadioGroup)findViewById(R.id.radiogroup);
radioGroup.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(RadioGroup group, int checkedId) {
Fragment fragment=FragmentFactory.creatFragment(checkedId);
getSupportFragmentManager().beginTransaction()
.replace(R.id.Linear,fragment)
.commit();
}
});

}

}

ViewPager加载的ListView:
public class ViewFragment extends Fragment {
private ListView listView;
private List<Map<String,Object>> datalist;
private SimpleAdapter simpleAdapter;
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View view= inflater.inflate(R.layout.view,container,false);
listView= (ListView) view.findViewById(R.id.listView);
datalist = new ArrayList<Map<String,Object>>();
simpleAdapter=new SimpleAdapter(getActivity(),getdata(),R.layout.item,new String[]{"pic","text"},new int[]{R.id.pic,R.id.textView});
listView.setAdapter(simpleAdapter);
return view;
}
private List<Map<String,Object>> getdata()
{
for(int i=1;i<10;i++) {
Map<String,Object> map=new HashMap<String,Object>(); //初始化Map
map.put("pic", R.mipmap.ic_launcher); //通过键赋值
map.put("text", "内容"+i);
datalist.add(map); //把map放入List
}
return datalist;
}
}

ViewPager:
public class ViewPagerFragment extends Fragment{
private List<String> tablist;
private List<android.support.v4.app.Fragment> fraglist;
private PagerTabStrip tab;
private ViewPager viewPager;
@Nullable
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View view=inflater.inflate(R.layout.viewpager,container,false);
fraglist=new ArrayList<android.support.v4.app.Fragment>(); //初始化
tablist=new ArrayList<String>();
fraglist.add(new ViewFragment());
fraglist.add(new ViewFragment());
tablist.add("第一页");
tablist.add("第二页");
viewPager=(ViewPager)view.findViewById(R.id.viewpager);
tab=(PagerTabStrip)view.findViewById(R.id.tab);
/*
设置PagerTabStrip的一些属性
*/
tab.setBackgroundColor(getResources().getColor(R.color.colorAccent)); //设置标题背景颜色
tab.setTextColor(Color.WHITE); //设置文字颜色
tab.setDrawFullUnderline(false); //去掉下划线
tab.setTabIndicatorColor(Color.WHITE); //设置选择线颜色
MyFragmentAdapter adapter=new MyFragmentAdapter(getActivity().getSupportFragmentManager(),tablist,fraglist);
viewPager.setAdapter(adapter);
return view;
}
}

FragmentFactory:
public class FragmentFactory {
private static Fragment fragment;
public static Fragment creatFragment(int checkedId)
{
switch (checkedId)
{
case R.id.rbt1:
fragment=new ViewPagerFragment();
break;
case R.id.rbt2:
fragment=new GirdViewFragment();
break;
}
return fragment;
}
}

activity_main.xml:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="com.example.myapplication.MainActivity">

<RadioGroup
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:orientation="horizontal"
android:id="@+id/radiogroup">
<RadioButton
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/rbt1"
android:layout_weight="1"
android:drawableTop="@drawable/radiobutton_home_selector"
android:textColor="@drawable/radiobutoon_home_text_selector"
android:layout_marginLeft="20dp"
android:textSize="15sp"
android:gravity="center"
android:checked="true"
android:text="@string/home"

android:button="@null"/>


<RadioButton
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/rbt2"
android:layout_weight="1"
android:drawableTop="@drawable/raidobutton_girdviw_selector"
android:textColor="@drawable/radiobutton_girdview_text_selector"
android:text="@string/girdview"
android:button="@null"
android:gravity="center"
android:textSize="15sp"
/>

<RadioButton
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/rbt3"
android:layout_weight="1"
android:drawableTop="@drawable/radionbutton_internet_selector"
android:textColor="@drawable/radiobutton_internet_text_selector"
android:text="@string/internet"
android:button="@null"
android:gravity="center"
android:textSize="15sp"
/>

</RadioGroup>

<ImageView
android:layout_width="match_parent"
android:layout_height="2dp"
android:id="@+id/imageView"
android:background="@color/colorAccent"
android:layout_above="@+id/radiogroup"
android:layout_marginBottom="10dp"
android:layout_centerHorizontal="true" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_above="@+id/imageView"
android:id="@+id/Linear"
android:layout_alignParentTop="true">

</LinearLayout>

</RelativeLayout>

谢谢你们的帮助!
...全文
223 7 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
IT小蔡 2016-07-26
  • 打赏
  • 举报
回复
引用 6 楼 fxfxfxfxw的回复:
解决了,在Fragmetadapter的构造方法要传入gerchildfragmentmanager而不是gersupportfragmentmanager
这两个有什么区别啊,,,,,
fxfxfxfxw 2016-07-26
  • 打赏
  • 举报
回复
解决了,在Fragmetadapter的构造方法要传入gerchildfragmentmanager而不是gersupportfragmentmanager
周周爸 2016-07-25
  • 打赏
  • 举报
回复
这种还是自己找问题好。分别用log打印。。。去找哪里错误。小问题自己想办法解决。
adfldk 2016-07-25
  • 打赏
  • 举报
回复
第一次点击 传入的值是多 第二次点击 这个值又是多少
秃头地中海 2016-07-25
  • 打赏
  • 举报
回复
你多滑动几次会加载出来么
tudouzi007 2016-07-25
  • 打赏
  • 举报
回复
是不是没有这个adapter.notifyDataSetChanged();导致的 第二次加载了个空的adapter
fxfxfxfxw 2016-07-25
  • 打赏
  • 举报
回复
初步判断是fragment嵌套fragment导致的,但是无论是v4包还是app包都没有getchildfragmentmanager这个方法。。

80,471

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧