Fragment中使用listview_fragment中listview-程序员宅基地

技术标签: android  listview  Android  

按照步骤来就可以达到效果:

1-新建一个listview.xml

是listview中每个items的样式

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical">

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:background="#f1e4f1"
        android:orientation="horizontal">

        <ImageView
            android:id="@+id/image"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content" />

        <TextView
            android:id="@+id/title"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:textColor="#666872" />

        <Button
            android:id="@+id/view"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="详细" />
    </LinearLayout>

    <TextView
        android:id="@+id/info"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textColor="#666872" />
</LinearLayout>

2-新建一个适配器类

public class ListViewAdapter extends BaseAdapter {
    

    private List<Map<String, Object>> data;
    private LayoutInflater layoutInflater;
    private Context context;
    public ListViewAdapter(Context context,List<Map<String, Object>> data){
        this.context=context;
        this.data=data;
        this.layoutInflater=LayoutInflater.from(context);
    }
    /**
     * 组件集合,对应list.xml中的控件
     * @author Administrator
     */
    public final class Zujian{
    
        public ImageView image;
        public TextView title;
        public Button view;
        public TextView info;
    }
    @Override
    public int getCount() {
        return data.size();
    }
    /**
     * 获得某一位置的数据
     */
    @Override
    public Object getItem(int position) {
        return data.get(position);
    }
    /**
     * 获得唯一标识
     */
    @Override
    public long getItemId(int position) {
        return position;
    }

    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
        Zujian zujian=null;
        if(convertView==null){
            zujian=new Zujian();
            //获得组件,实例化组件
            convertView=layoutInflater.inflate(R.layout.home_listview, null);
            zujian.image=(ImageView)convertView.findViewById(R.id.image);
            zujian.title=(TextView)convertView.findViewById(R.id.title);
            zujian.view=(Button)convertView.findViewById(R.id.view);
            zujian.info=(TextView)convertView.findViewById(R.id.info);
            convertView.setTag(zujian);
        }else{
            zujian=(Zujian)convertView.getTag();
        }
        //绑定数据
        zujian.image.setBackgroundResource((Integer)data.get(position).get("image"));
        zujian.title.setText((String)data.get(position).get("title"));
        zujian.info.setText((String)data.get(position).get("info"));
        return convertView;
    }

}

3-在fragment的布局文件中(如main_fragment.xml)添加Listview控件

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:materialdesign="http://schemas.android.com/apk/res-auto"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    >
    <!-- ... XML CODE -->
    <ListView
           android:id="@+id/listview"
            android:layout_width="fill_parent"
           android:layout_height="fill_parent">

    </ListView>
</RelativeLayout>

4-在Fragment.java中调用Listview

public class FragmentIHome extends BaseFragment{
    

    private ListView listView;
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
        View view= inflater.inflate(R.layout.home_fragment , container, false);
        listView = (ListView)view.findViewById(R.id.listview);
        List<Map<String, Object>> list=getData();
        listView.setAdapter(new ListViewAdapter(getActivity(), list));
        return view;
    }

    public List<Map<String, Object>> getData(){
           List<Map<String, Object>> list=new ArrayList<Map<String,Object>>();
              for (int i = 0; i < 10; i++) {
                       Map<String, Object> map=new HashMap<String, Object>();
                       map.put("image", R.drawable.ic_launcher);
                       map.put("title", "这是一个标题"+i);
                   map.put("info", "这是一个详细信息" + i);
                       list.add(map);
                   }
          return list;
    }
}
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/feather_wch/article/details/51135551

智能推荐

【超好懂的比赛题解】第 45 届国际大学生程序设计竞赛(ICPC)亚洲区域赛(济南)_icpc国际大学生程序设计竞赛题目-程序员宅基地

文章浏览阅读930次,点赞2次,收藏2次。title : 第 45 届国际大学生程序设计竞赛(ICPC)亚洲区域赛(济南)tags : ACM,题解,练习记录。_icpc国际大学生程序设计竞赛题目

SpringBoot(Thymeleaf)拼接跳转链接_thymeleaf拼接href和${}-程序员宅基地

文章浏览阅读1.1k次。th:href = "@{/user/}"+${xxxx}链接的拼接类似于Java中的字符串拼接,使用+完成拼接要注意的是@{}中要把后面的/也带上,${}中的是变量值,可以是从别的页面获取的表单值之类的_thymeleaf拼接href和${}

【论文笔记 医疗影像分割—nnUNet】nnU-Net: Self-adapting Framework for U-Net-Based Medical Image Segmentation-程序员宅基地

文章浏览阅读6.4k次,点赞3次,收藏41次。文章目录1.Abstract说明:本文是对原版论文和一位大神解读的基础上,加以自己的理解而作,如有错误,欢迎指正。大神的文章链接1.Abstract'对于深度学习模型来说,当用在一个新的问题上,就需要对可变设置人为设定。对新问题的适应包括精确架构、预训练、训练、推理对个自由度,这些选择对整体性能有很大的影响。本文提出nnU-Net(no-new-net)????,是一种基于三个模型:2D U-Net, 3D U-Net 和U-Net Cascade(级联的3D U-net,之后会有介绍)上的自适应框_nnunet

Java 异常的处理_catch中不用system.exit(1)会怎样-程序员宅基地

文章浏览阅读242次。Java 异常的处理Java 应用程序中,对异常的处理有两种方式:处理异常和声明异常。处理异常:try、catch 和 finally若要捕获异常,则必须在代码中添加异常处理器块。这种 Java 结构可能包含 3 个部分,都有 Java 关键字。try 语句块:将一个或者多个语句放入 try 时,则表示这些语句可能抛出异常。编译器知道可能要发生异常,于是用一个特殊结构评估块内所_catch中不用system.exit(1)会怎样

OSPF 多区域配置实验_area0.0.1.0等于多少-程序员宅基地

文章浏览阅读263次。OSPF 多区域配置_area0.0.1.0等于多少

字典树_字典树建树-程序员宅基地

文章浏览阅读271次。原创字典树字典树,又称单词查找树,Trie树,是一种树形结构,哈希表的一个变种。用于统计,排序和保存大量的字符串(也可以保存其的)。优点就是利用公共的前缀来节约存储空间。在这举个简单的例子:比如说我们想储存3个单词,nyist、nyistacm、nyisttc。如果只是单纯的按照以前的字符数组存储的思路来存储的话,那么我们需要定义三个字符串数组。但是_字典树建树

随便推点

MySQL8.0学习记录10 - 字符集与校对规则_mysql8.0存储系统元数据的字符集是-程序员宅基地

文章浏览阅读2.1k次。MySQL8.0字符集_mysql8.0存储系统元数据的字符集是

漫威所有电影的 按时间线的观影顺序-程序员宅基地

文章浏览阅读3.1k次。美国队长1 - 2011年惊奇队长 - 2019年钢铁侠1 - 2008年无敌浩克 - 2008年钢铁侠2 - 2010年雷神 - 2011年复仇者联盟 - 2012年雷神2 - 2013年钢铁侠3 - 2013年美国队长2 - 2014年复仇者联盟2 - 2015年银河护卫队 - 2017年蚁人 - 2015年美国队长3 - 2016年奇异博士 - 2016年银河护卫队2 - 2017..._漫威电影观看顺序时间线

PhotoZoom Classic 7中的新功能-程序员宅基地

文章浏览阅读142次。众所周知PhotoZoom Classic是家庭使用理想的放大图像软件。目前很多用户还在使用PhotoZoom Classic 6,对于PhotoZoom Classic 7还是有点陌生。其实在6代衍生下出了7代,7代比6代多了很多适用的功能。下面我们就介绍一下PhotoZoom Classic 7中的新功能。PhotoZoom Classic 6的功能我们就不过多介绍,主要介绍7代中特有的功..._photozoon的作用

tensorflow中tf.keras.models.Sequential()用法-程序员宅基地

文章浏览阅读4.6w次,点赞75次,收藏349次。tensorflow中tf.keras.models.Sequential()用法Sequential()方法是一个容器,描述了神经网络的网络结构,在Sequential()的输入参数中描述从输入层到输出层的网络结构model = tf.keras.models.Sequential([网络结构]) #描述各层网络网络结构举例:拉直层:tf.keras.layers.Flatten() #拉直层可以变换张量的尺寸,把输入特征拉直为一维数组,是不含计算参数的层全连接层:tf.ker._tf.keras.models.sequential

Java递归实现Fibonacci数列计算_用递归方法编程计算fibonacci数列:(n=10),fac.jpg-程序员宅基地

文章浏览阅读2.8k次。实现代码如下:public static int factorial(int n){ if (n <= 1){ return 1; } return factorial(n-1) + factorial(n-2); }测试代码如下:System.out.println(factorial(40));测..._用递归方法编程计算fibonacci数列:(n=10),fac.jpg

scratch班级名称 电子学会图形化编程scratch等级考试四级真题和答案解析B卷2020-9-程序员宅基地

文章浏览阅读1.3k次。scratch班级名称一、题目要求1、准备工作 保留小猫角色,白色背景 2、功能实现 点击绿旗后,询问请输入年级数,等待输入年级数 询问请输入班级数,等待输入班级数 定义列表“全校班级”,假设每个班级的班级数相同,所有班级名称自动生成并保存到全校班级中。 例如,输入年级数为5,输入班级数为8,可以看到舞台上列表全校班级的内容为:1(1)班、1(2)班、...5(7)班、5(8)班 二、案例分析1、角色分析角色:小猫2、背景_scratch班级名称

推荐文章

热门文章

相关标签