栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Android Studio 的ListView 的用法

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Android Studio 的ListView 的用法

首先我们来看下效果(简单来说,有点像,qq或微信的聊天的列表)

首先新建项目,为ListViewText,然后创建好avd,在activity_main写上代码




    


然后再新建list_item.xml ,




    


activity_main文件是整个屏幕,而list_item.xml是屏幕的的小列表(不知道我解释清楚了吗)

然后在java里面新建Bean类与MyAdapter类

Bean里面两方法

package com.example.listviewtext;

public class Bean {
    String name;

    public String getName() {
        return name;
    }

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

MyAdapter里面

package com.example.listviewtext;

import android.content.Context;
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;//创建私有的Bean类的data
    private Context context;

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

    @Override
    public int getCount() {
        return data.size();//获取data的长度
    }

    @Override
    public Object getItem(int i) {
        return null;
    }

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

    @Override
    public View getView(int i, View view, ViewGroup viewGroup) {
        if (view == null){//防止view不停的新建,
            view = LayoutInflater.from(context).inflate(R.layout.list_item,viewGroup,false);
        }
        TextView textView = view.findViewById(R.id.tv);
        textView.setText(data.get(i).getName());//系统会去R文件里面找type类型的值匹配String值
        return view;
    }
}

然后MainActivity里面代码

package com.example.listviewtext;

import androidx.appcompat.app.AppCompatActivity;

import android.os.Bundle;
import android.view.View;
import android.widget.ListView;

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

public class MainActivity extends AppCompatActivity {

    private List data = new ArrayList<>();//ArrayList 类是一个可以动态修改的数组,与普通数组的区别就是它是没有固定大小的限制,我们可以添加或删除元素

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

        for (int i = 1; i <= 100; i++) {
            Bean bean = new Bean();
            bean.setName("第" + i + "个");
            data.add(bean);//通过add把数据加入到data里面
        }
        ListView listView = findViewById(R.id.lv);//获取id,就是上面讲的屏幕里面的列表的id
        listView.setAdapter(new MyAdapter(data,this));//Adapter作用将各种数据以合适的形式显示在View中给用户看
    }
}

然后点击运行,看效果

如果不想通过for传值的话,还可以用new 的方法,一个一个创建

package com.example.listviewtext;

import androidx.appcompat.app.AppCompatActivity;

import android.os.Bundle;
import android.view.View;
import android.widget.ListView;

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

public class MainActivity extends AppCompatActivity {

    private List data = new ArrayList<>();

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

        Bean bean = new Bean();
        bean.setName("a");
        data.add(bean);
        Bean bean1 = new Bean();
        bean1.setName("b");
        data.add(bean1);

        ListView listView = findViewById(R.id.lv);
        listView.setAdapter(new MyAdapter(data,this));


    }
}

看效果

本人小萌新,如有错误欢迎来纠正。

hhhh(来自小萌新的分享)
(求关注)

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/768286.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号