美文网首页
Android-Listview和Gridview(MVC创建)

Android-Listview和Gridview(MVC创建)

作者: a1a4b0d9e20c | 来源:发表于2020-05-27 13:43 被阅读0次

1、页面中初始化控件

    //定义
    private List<ItemBean> dataList;
    private LayoutInflater mInflater;
    private LinearLayout headListView;
    private LinearLayout footerListView;

    //控件代码
        ListView listView = (ListView) findViewById(R.id.dome_listview);

        //数组初始化
        dataList = new ArrayList<>();
        //假数据
        for (int i = 0;i < 50;i ++){

            dataList.add(new ItemBean("张三"+i,i + "岁","男"));
        }

        //添加头部、尾部视图
        mInflater = LayoutInflater.from(this);

        headListView = (LinearLayout)mInflater.inflate(R.layout.headlistview,null);
        footerListView = (LinearLayout) mInflater.inflate(R.layout.footerlistview,null);

        listView.addHeaderView(headListView);
        listView.addFooterView(footerListView);

        //赋值控件Adapter  + +-+`-+----
        listView.setAdapter(new  UserUnfoListAdapter(this,dataList));

        //item点击事件
        listView.setOnItemClickListener(this);

2、点击事件

    @Override
    public void onItemClick(AdapterView<?> parent, View view, int position, long id) {

        System.out.println("点击了" + position);
    }

3、创建Model

    public class ItemBean {
        //ItemName 、ItemAge、ItemSex 服务器返回的字段名
        public String ItemName;
        public String ItemAge;
        public String ItemSex;

        public ItemBean(String itemName, String itemAge, String itemSex) {
            ItemName = itemName;
            ItemAge = itemAge;
            ItemSex = itemSex;
        }
    }

4、创建Adapter

   //创建Adapter
   public class UserUnfoListAdapter extends BaseAdapter{

       private List<ItemBean> dataList =  new ArrayList<>();

        public UserUnfoListAdapter(Context context, List<ItemBean> list) {

           dataList = list;
           //固定写法
           mInflater = LayoutInflater.from(context);
        }

        @Override
        //用来返回数据源的个数
        public int getCount() {
            return dataList.size();
        }

        @Override
        //用来返回指定position的数据源
        public Object getItem(int position) {
            return dataList.get(position);
        }

        @Override
        //用来返回指定position的数据源的ID
        public long getItemId(int position) {
            return position;
        }

        @Override
        //返回指定position的每一个item的布局文件的view,这个view将会显示在指定position的位置
        public View getView(int position, View convertView, ViewGroup parent) {

            View itemRootView = mInflater.inflate(R.layout.item,null);

            //对布局资源文件里面的textview进行赋值
            TextView tvName = (TextView) itemRootView.findViewById(R.id.tv_name);
            TextView tvAge = (TextView) itemRootView.findViewById(R.id.tv_age);
            TextView tvSex = (TextView) itemRootView.findViewById(R.id.tv_sex);

            ItemBean bean = dataList.get(position);
            //图片取值
            //imageView.setImageResource(bean.ItemImageResId);
            //文本取值
            tvName.setText(bean.ItemName);
            tvAge.setText(bean.ItemAge);

            if (position % 2 ==0){
                tvSex.setText("男");

                if (tvSex.getText().toString().equals("男")){
                    tvSex.setText("女");
                }

            }else {
                tvSex.setText("女");
            }

            return itemRootView;
        }
    }

5、主页面布局

   <!--dividerHeight:分割线高度;scrollbars:右侧显示线;overScrollMode:隐藏阴影-->
   <ListView 
             android:layout_width="match_parent"
             android:layout_height="match_parent"

             android:id="@+id/dome_listview"
             android:entries="@array/grade"
             android:divider="#f00"
             android:dividerHeight="1px"
             android:scrollbars="none"
             android:overScrollMode="never"

   ></ListView>

    <GridView
        android:id="@+id/grid_view_menu"
        android:numColumns="3"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:verticalSpacing="10dp"
        android:horizontalSpacing="10dp"

   ></GridView>

6、cell里面的布局 item.xml

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

    <TextView android:layout_width="wrap_content"
              android:layout_height="wrap_content"
              android:id="@+id/tv_name"/>

    <TextView android:layout_width="wrap_content"
                  android:layout_height="wrap_content"
                  android:id="@+id/tv_age"/>

    <TextView android:layout_width="wrap_content"
                  android:layout_height="wrap_content"
                  android:id="@+id/tv_sex"/>

</LinearLayout>

7、头视图布局 headlistview.xml

<?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="wrap_content">

    <View android:layout_width="match_parent"
          android:layout_height="40dp"
          android:background="#f00"

    ></View>

</LinearLayout>

8、尾视图布局 footerlistview.xml

<?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="wrap_content">

    <View android:layout_width="match_parent"
          android:layout_height="40dp"
          android:background="#f00"

    ></View>

</LinearLayout>

相关文章

网友评论

      本文标题:Android-Listview和Gridview(MVC创建)

      本文链接:https://www.haomeiwen.com/subject/xbdwahtx.html