Fragment中使用listview

来源:互联网 发布:人工智能带来的问题 编辑:程序博客网 时间:2024/05/17 21:51

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

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.home_listview);        List<Map<String, Object>> list=getData();        listView.setAdapter(new HomeListViewAdapter(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;    }}
1 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 小米note充电红灯闪烁怎么办 小米note2突然充电慢怎么办 充电小米note2手机闪烁怎么办 小米6x上网慢怎么办 小米5数据上网慢怎么办 小米5c照相模糊怎么办 小米5充电很慢怎么办 iphone图库照片没了怎么办 我想通过微信号得到手机号怎么办 给充电宝充电慢怎么办 小米5s充不了电怎么办 百度网盘下载速度慢怎么办 负债累累没有钱没有资源怎么办 好福利密码忘了怎么办 手机无法申请百度网盘怎么办 魅族手机运行慢怎么办 阿里小宝卡流量用完了怎么办 阿里宝卡流量用完了怎么办 百度网盘本地空间不足怎么办 百度网盘空间不足怎么办 百度网盘容量不够怎么办 百度网盘内存不够怎么办 百度网盘储存空间不足怎么办 百度网盘手机号注销了怎么办 手机系统升级后照片没了怎么办 换手机照片没了怎么办 苹果手机icloud满了怎么办 百度网盘密码忘记怎么办 手机卡不用了支付宝账号怎么办 手机校园网不弹出登录界面怎么办 百度云需要邮箱验证怎么办 网页百度网盘不播放视频怎么办 手机qq邮箱中转站容量不足怎么办 qq邮箱容量满了怎么办 手机邮箱中转站容量不足怎么办 微信号登陆要好友验证怎么办 邮箱账号名忘了怎么办 苹果六话筒坏了怎么办 iphone后置摄像头坏了怎么办 苹果8听歌声音小怎么办 酷狗音乐没了怎么办