Android Studio 的ListView 的用法

简介: Android Studio 的ListView 的用法

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


(java版)

image.png


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


java


<?xmlversion="1.0"encoding="utf-8"?><LinearLayoutxmlns:android="http://schemas.android.com/apk/res/android"android:id="@+id/activity_main"android:layout_width="match_parent"android:layout_height="match_parent"><ListViewandroid:layout_width="match_parent"android:layout_height="match_parent"android:id="@+id/lv"/></LinearLayout>


然后再新建list_item.xml ,


java


<?xmlversion="1.0"encoding="utf-8"?><LinearLayoutxmlns:android="http://schemas.android.com/apk/res/android"android:layout_width="match_parent"android:layout_height="match_parent"android:orientation="vertical"><TextViewandroid:id="@+id/tv"android:textSize="30sp"android:textColor="@color/black"android:layout_width="wrap_content"android:layout_height="wrap_content"/></LinearLayout>


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

image.png

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

image.png

Bean里面两方法


java

packagecom.example.listviewtext;
publicclassBean {
Stringname;
publicStringgetName() {
returnname;
    }
publicvoidsetName(Stringname) {
this.name=name;
    }
}



MyAdapter里面


java


packagecom.example.listviewtext;
importandroid.content.Context;
importandroid.view.LayoutInflater;
importandroid.view.View;
importandroid.view.ViewGroup;
importandroid.widget.BaseAdapter;
importandroid.widget.TextView;
importjava.util.List;
publicclassMyAdapterextendsBaseAdapter {
privateList<Bean>data;//创建私有的Bean类的dataprivateContextcontext;
publicMyAdapter(List<Bean>data, Contextcontext) {
this.data=data;
this.context=context;
    }
@OverridepublicintgetCount() {
returndata.size();//获取data的长度    }
@OverridepublicObjectgetItem(inti) {
returnnull;
    }
@OverridepubliclonggetItemId(inti) {//获取idreturni;
    }
@OverridepublicViewgetView(inti, Viewview, ViewGroupviewGroup) {
if (view==null){//防止view不停的新建,view=LayoutInflater.from(context).inflate(R.layout.list_item,viewGroup,false);
        }
TextViewtextView=view.findViewById(R.id.tv);
textView.setText(data.get(i).getName());//系统会去R文件里面找type类型的值匹配String值returnview;
    }
}




然后MainActivity里面代码


java


packagecom.example.listviewtext;
importandroidx.appcompat.app.AppCompatActivity;
importandroid.os.Bundle;
importandroid.view.View;
importandroid.widget.ListView;
importjava.util.ArrayList;
importjava.util.List;
publicclassMainActivityextendsAppCompatActivity {
privateList<Bean>data=newArrayList<>();//ArrayList 类是一个可以动态修改的数组,与普通数组的区别就是它是没有固定大小的限制,我们可以添加或删除元素@OverrideprotectedvoidonCreate(BundlesavedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
for (inti=1; i<=100; i++) {
Beanbean=newBean();
bean.setName("第"+i+"个");
data.add(bean);//通过add把数据加入到data里面        }
ListViewlistView=findViewById(R.id.lv);//获取id,就是上面讲的屏幕里面的列表的idlistView.setAdapter(newMyAdapter(data,this));//Adapter作用将各种数据以合适的形式显示在View中给用户看    }
}


然后点击运行,看效果

image.png

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


java


packagecom.example.listviewtext;
importandroidx.appcompat.app.AppCompatActivity;
importandroid.os.Bundle;
importandroid.view.View;
importandroid.widget.ListView;
importjava.util.ArrayList;
importjava.util.List;
publicclassMainActivityextendsAppCompatActivity {
privateList<Bean>data=newArrayList<>();
@OverrideprotectedvoidonCreate(BundlesavedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Beanbean=newBean();
bean.setName("a");
data.add(bean);
Beanbean1=newBean();
bean1.setName("b");
data.add(bean1);
ListViewlistView=findViewById(R.id.lv);
listView.setAdapter(newMyAdapter(data,this));
    }
}


看效果

image.png

(kotlin版)


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




<?xmlversion="1.0"encoding="utf-8"?><LinearLayoutxmlns:android="http://schemas.android.com/apk/res/android"android:layout_width="match_parent"android:layout_height="match_parent"><ListViewandroid:id="@+id/listView"android:layout_width="match_parent"android:layout_height="match_parent"/></LinearLayout>


然后MainActivity里面代码

packagecom.example.listview2importandroidx.appcompat.app.AppCompatActivityimportandroid.os.Bundleimportandroid.widget.ArrayAdapterimportkotlinx.android.synthetic.main.activity_main.*classMainActivity : AppCompatActivity() {
privatevaldata=listOf("1","2","3","4","5","6","7","8","9","10","11","12","13","14","15")
overridefunonCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
valadapter=ArrayAdapter(this,android.R.layout.simple_list_item_1,data)
listView.adapter=adapter    }
}


效果如下:

image.png



相关文章
|
10月前
|
SQL 人工智能 Dart
Android Studio的插件生态非常丰富
Android Studio的插件生态非常丰富
622 1
|
10月前
|
Ubuntu Linux Android开发
Android Studio支持多种操作系统
Android Studio支持多种操作系统
496 1
|
4月前
|
数据库 Android开发
Android使用EditText+Listview实现搜索效果(使用room模糊查询)
本文介绍如何在Android中使用EditText与ListView实现搜索功能,并结合Room数据库完成模糊查询。主要内容包括:Room的模糊查询语句(使用`||`代替`+`号)、布局美化(如去除ListView分割线和EditText下划线)、EditText回车事件监听,以及查询逻辑代码示例。此外,还提供了相关扩展文章链接,帮助读者深入了解ListView优化、动态搜索及Room基础操作。
324 65
|
5月前
|
开发工具 Android开发 iOS开发
如何在Android Studio中配置Flutter环境?
如何在Android Studio中配置Flutter环境?
1346 61
|
4月前
|
Android开发 Windows
Android studio 报错Connect to 127.0.0.1:8888 [/127.0.0.1] failed: Connection refused: connect(已解决)
这是一篇关于解决Android Studio报错“Connect to 127.0.0.1:8888 failed: Connection refused”的文章。问题通常因系统代理设置被Android Studio自动保存导致。解决方法是找到系统中Android Studio使用的gradle.properties文件(位于Windows的C:\Users\你的电脑用户名\.gradle或Mac的/Users/.{你的用户目录}/.gradle),删除或注释掉多余的代理配置后保存并重新Sync项目。希望此经验能帮助快速解决同类问题!
662 36
|
4月前
|
Java Android开发
Android studio中build.gradle文件简单介绍
本文解析了Android项目中build.gradle文件的作用,包括jcenter仓库配置、模块类型定义、包名设置及依赖管理,涵盖本地、库和远程依赖的区别。
435 19
|
7月前
|
前端开发 Java 编译器
当flutter react native 等混开框架-并且用vscode-idea等编译器无法打包apk,打包安卓不成功怎么办-直接用android studio如何打包安卓apk -重要-优雅草卓伊凡
当flutter react native 等混开框架-并且用vscode-idea等编译器无法打包apk,打包安卓不成功怎么办-直接用android studio如何打包安卓apk -重要-优雅草卓伊凡
203 36
当flutter react native 等混开框架-并且用vscode-idea等编译器无法打包apk,打包安卓不成功怎么办-直接用android studio如何打包安卓apk -重要-优雅草卓伊凡
|
7月前
|
Dart 前端开发 Android开发
【09】flutter首页进行了完善-采用android studio 进行真机调试开发-增加了直播间列表和短视频人物列表-增加了用户中心-卓伊凡换人优雅草Alex-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草Alex
【09】flutter首页进行了完善-采用android studio 进行真机调试开发-增加了直播间列表和短视频人物列表-增加了用户中心-卓伊凡换人优雅草Alex-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草Alex
175 4
【09】flutter首页进行了完善-采用android studio 进行真机调试开发-增加了直播间列表和短视频人物列表-增加了用户中心-卓伊凡换人优雅草Alex-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草Alex
|
10月前
|
前端开发 数据处理 Android开发
Flutter前端开发中的调试技巧与工具使用方法,涵盖调试的重要性、基本技巧如打印日志与断点调试、常用调试工具如Android Studio/VS Code调试器和Flutter Inspector的介绍
本文深入探讨了Flutter前端开发中的调试技巧与工具使用方法,涵盖调试的重要性、基本技巧如打印日志与断点调试、常用调试工具如Android Studio/VS Code调试器和Flutter Inspector的介绍,以及具体操作步骤、常见问题解决、高级调试技巧、团队协作中的调试应用和未来发展趋势,旨在帮助开发者提高调试效率,提升应用质量。
282 8
|
10月前
|
数据可视化 开发工具 Android开发
Android Studio
Android Studio
669 1

热门文章

最新文章