第二次加载ListView无法加载

Android 码拜 8年前 (2016-05-10) 1170次浏览
第一次打开程序,ListView是正常加载的
第二次加载ListView无法加载
第二次点击主页时,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>

谢谢你们的帮助!

解决方案

10

是不是没有这个adapter.notifyDataSetChanged();导致的 第二次加载了个空的adapter

10

你多滑动几次会加载出来么

10

第一次点击 传入的值是多 第二次点击 这个值又是多少

10

这种还是本人找问题好。分别用log打印。去找哪里错误。小问题本人想办法解决。

CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明第二次加载ListView无法加载
喜欢 (0)
[1034331897@qq.com]
分享 (0)