Listview

一、功能属性

在Android开发中,ListView控件是一个比较常用的控件,他以列表的形式展现数据的内容,并且能根据列表的高度,自适应屏幕的显示。ListView控件的样式是由它的属性决定的,它的常用属性介绍如下:

ListView控件的常用属性
属性 功能
android:listSelector 当条目被点击后,改变条目的背景颜色
android:divider 设置分割线颜色
android:scrollbars 显示滚动条目
android:dividerHeight 设置分割线高度
android:fadingEdge 去掉上边和下边的黑色阴影

下面通过一个案例,进行熟悉掌握ListView控件

二、案例

前提说明:这个制作的这个程序,为了方便,采用的是本地数据(一般情况下是获取网上数据),通过创建Bean类用于获取数据

首先,在res/layout中创建一个activity_main(我创建的是linearlayout_listview01)和list_item01.然后代码如下:

linearlayout_listview01.xml



    

list_item01.xml





    

然后在Java文件中创建了Bean类和MainActivity类,为了进行数据填充,我还创建了MyAdapter类,代码如下:

Bean.java

package com.example.myapplication6;

public class Bean {
    String name;

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }
}

MainActivity.java

package com.example.myapplication6;

import android.app.Activity;
import android.content.Context;
import android.view.View;
import android.view.ViewGroup;
import android.widget.*;
import android.os.Bundle;

import java.util.ArrayList;
import java.util.List;

public class MainActivity extends Activity {
    private List data=new ArrayList<>();
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.linearlayout_listview);
//        利用for循环获取数据
        for (int i=0;i<100;i++){
            Bean bean=new Bean();
            bean.setName("登山的你"+i);
            data.add(bean);
    }
//       初始化,拿到listview对象
        ListView listView=findViewById(R.id.lv);
//        进行数据的填充
        listView.setAdapter(new MyAdapter(data,this));

    }
}


MyAdapter.java

package com.example.myapplication6;

import android.content.Context;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.TextView;

import java.util.List;

public class MyAdapter extends BaseAdapter {
    private List data;
    private Context context;

    public MyAdapter(List data, Context context) {
        this.data = data;
        this.context = context;
    }

    public MyAdapter() {
    }
//    获取总共的数据

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

    @Override
//    获取item
    public Object getItem(int i) {
        return null;
    }

    @Override
//    获取id
    public long getItemId(int i) {
        return i;
    }

    @Override
//    返回item的条目,然后进行设置
    public View getView(int i, View view, ViewGroup viewGroup) {
//        进行复用,防止view反复创建
        if(view==null){
//            拿到item条目的布局,inflate进行渲染item,
            view=LayoutInflater.from(context).inflate(R.layout.list_item01,viewGroup,false);
        }
//        拿到text
        TextView textView=view.findViewById(R.id.tv_two);
        textView.setText(data.get(i).getName());
        Log.e("leg","getview"+i);

        return view;
    }
}

结果如下:

Listview_第1张图片

你可能感兴趣的:(Android,android)