android fragment中带有listview,自定义item

前几天碰到一个问题,做到tab切换fragment,而fragment中带有listView。

看了几篇其他博主的文章,大致上说采用listfragment,单纯的fragment不能用自定义item的listview。


一开始我是相信的,采用了listfragment。但是写完了listFragment才发现这个listfragment不是继承fragment,而viewPager.setAdapter是要求Fragment类的。

viewPager.setAdapter(new FragmentStatePagerAdapter(
getSupportFragmentManager()) {


@Override
public int getCount() {
return fragments.size();
}


@Override
public Fragment getItem(int arg0) {
return fragments.get(arg0);
}
});


getItem方法中的返回类型要求Fragment,改成ListFragment也是不行了。估计要重写这个方法,感觉很麻烦,于是我又尝试前面说的单纯的fragment,居然成功了!

1.SpeakFragment。在 classListView = (ListView) v.findViewById(R.id.lv_speak);通过获得fragment的布局,在从这个布局v中获得listview。

public class SpeakFragment extends Fragment {
 private ClassListAdapter adapter = null;  
      private List<ClassList> classList;
      private ListView classListView;
   @Override  
   public void onCreate(Bundle savedInstanceState) {  
       super.onCreate(savedInstanceState);  
      
     
   }  
 
   @Override  
   public View onCreateView(LayoutInflater inflater, ViewGroup container,  
           Bundle savedInstanceState) {  
    Classinit();
       View v = inflater.inflate(R.layout.speakfragment,null);  
       classListView = (ListView) v.findViewById(R.id.lv_speak);
       adapter = new ClassListAdapter(getActivity(), R.layout.speak_item, classList);  
       classListView.setAdapter(adapter);
       return v;  
   }  
     
   public void Classinit(){
    classList = new ArrayList<ClassList>();
    ClassList class1 = new ClassList();
    class1.setTitle("class1");
    class1.setContent("classContent1");
    class1.setCount("一共2个句子");
    classList.add(class1);
    ClassList class2 = new ClassList();
    class2.setTitle("class2");
    class2.setContent("classContent2");
    class2.setCount("一共2个句子");
    classList.add(class2);
    ClassList class3 = new ClassList();
    class3.setTitle("class3");
    class3.setContent("classContent3");
    class3.setCount("一共2个句子");
    classList.add(class3);
    ClassList class4 = new ClassList();
    class4.setTitle("class4");
    class4.setContent("classContent4");
    class4.setCount("一共2个句子");
    classList.add(class4);
    ClassList class5 = new ClassList();
    class5.setTitle("class1");
    class5.setContent("classContent5");
    class5.setCount("一共2个句子");
    classList.add(class5);
    ClassList class6 = new ClassList();
    class6.setTitle("class6");
    class6.setContent("classContent6");
    class6.setCount("一共2个句子");
    classList.add(class6);
    ClassList class7 = new ClassList();
    class7.setTitle("class7");
    class7.setContent("classContent7");
    class7.setCount("一共2个句子");
    classList.add(class7);
   }
}

当然我这里的adapter是重写的一个适配器,比较简单就不展示了。结果如图下


  • 6
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值