一、实验目的
掌握Android ListView组件的使用和图文列表项布局的使用

二、实验设备及器件
Android Studio

三、实验内容
1.创建一个Android应用,创建一个Android应用,创建MainActivity。
2.在布局文件里写入ListView组件。
3.在MainActivity写入ListView的初始化代码。
4.完成复杂的带图片、标题和消息文本的ListView列表项布局,如下图在这里插入图片描述四、实验步骤
1、创建工程:
2、修改activity_main

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context="com.example.administrator.diyici.diyici">

    <ListView
        android:id="@+id/lv"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:fastScrollEnabled="true"
        //滚动
        
        ></ListView>


</RelativeLayout>

3、修改MainActivity初始化 ListView的代码 我的包名 是diyici 这是最终的

package com.example.administrator.diyici;

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.ListView;
import android.widget.TextView;

public class diyici extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_diyici);

        ListView lv = (ListView) findViewById(R.id.lv);
        lv.setAdapter(new MyListAdapter());
//        ListView需要访问什么数据,都是吩咐Adapter帮忙去访问数据的
//        Adapter只负责提供数据,ListView只负责展示数据
//        Adapter做的工作,就是帮ListView去适配数据源的
    }

    private class MyListAdapter extends BaseAdapter {
        @Override
        public int getCount() {
            return 50;
        }
        //重复50个


        @Override

        //大概是找item  先找item再找是那个item
        public Object getItem(int position) {
            return null;
        }

        @Override
        //大概识别item的名字  比如第几个item   ListView中会有很多个item这里就设置了50个
        public long getItemId(int position) {
            return 0;
        }

        /**
         * 列表项初始化
         *
         * @param position
         * @param convertView
         * @param parent
         * @return
         */
        @Override
        public View getView(int position, View convertView, ViewGroup parent) {
//            ListView 针对List中每个item,要求 adapter “给我一个视图” (getView)。

            View view;
            if (convertView == null) {
//                当convertView为空,也就是没有废弃已缓存的view时,
//              将调用LayoutInflater的inflate()方法加载出来布局view

//                System.out.println("创建新的view对象---"+position);
                view = View.inflate(diyici.this,R.layout.item,null);
            } else {
//                当convertView不为空时,我们就直接用convertView了,
//                而不需要再次调用LayoutInflater的inflate()方法加载出来布局view

//                System.out.println("复用历史缓存 对象---" + position);
                view =  convertView;
            }

            return view;
        }
    }
}


4、完成复杂ListView的编写
(1)复制flower.jpg图片到项目的drawable目录
(2)加入item.xml布局文件

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical" android:layout_width="match_parent"
    android:layout_height="match_parent">
    <ImageView
        android:id="@+id/tupian"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:src="@drawable/flower"/>

    <TextView
        android:id="@+id/biaoti"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_toRightOf="@+id/tupian"
        android:text="这是标题"
        android:textColor="#000000"
        android:textSize="20sp"
        />

    <TextView
        android:id="@+id/neirong"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_toRightOf="@+id/tupian"
        android:layout_below="@+id/biaoti"
        android:text="这是消息这是消息"
        android:textColor="#999999"
        android:textSize="15sp"
        />
</RelativeLayout>

运行查看最终效果:在这里插入图片描述
篮奏云apk地址:
https://rod.lanzous.com/b0dk28ida
密码:6k50

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐