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



相关文章
|
3月前
|
Java Android开发 C++
Android Studio JNI 使用模板:c/cpp源文件的集成编译,快速上手
本文提供了一个Android Studio中JNI使用的模板,包括创建C/C++源文件、编辑CMakeLists.txt、编写JNI接口代码、配置build.gradle以及编译生成.so库的详细步骤,以帮助开发者快速上手Android平台的JNI开发和编译过程。
242 1
|
1月前
|
Java Unix Linux
Android Studio中Terminal运行./gradlew clean build提示错误信息
遇到 `./gradlew clean build`命令执行出错时,首先应检查错误信息的具体内容,这通常会指向问题的根源。从权限、环境配置、依赖下载、版本兼容性到项目配置本身,逐一排查并应用相应的解决措施。记住,保持耐心,逐步解决问题,往往复杂问题都是由简单原因引起的。
234 2
|
2月前
|
编解码 前端开发 Android开发
Android经典实战之TextureView原理和高级用法
本文介绍了 `TextureView` 的原理和特点,包括其硬件加速渲染的优势及与其他视图叠加使用的灵活性,并提供了视频播放和自定义绘制的示例代码。通过合理管理生命周期和资源,`TextureView` 可实现高效流畅的图形和视频渲染。
224 12
|
2月前
|
XML IDE 开发工具
🔧Android Studio高级技巧大公开!效率翻倍,编码不再枯燥无味!🛠️
【9月更文挑战第11天】在软件开发领域,Android Studio凭借其强大的功能成为Android开发者的首选IDE。本文将揭示一些提升开发效率的高级技巧,包括自定义代码模板、重构工具、高级调试技巧及多模块架构。通过对比传统方法,这些技巧不仅能简化编码流程,还能显著提高生产力。例如,自定义模板可一键插入常用代码块;重构工具能智能分析并安全执行代码更改;高级调试技巧如条件断点有助于快速定位问题;多模块架构则提升了大型项目的可维护性和团队协作效率。掌握这些技巧,将使你的开发之旅更加高效与愉悦。
64 5
|
3月前
|
编解码 Android开发
【Android Studio】使用UI工具绘制,ConstraintLayout 限制性布局,快速上手
本文介绍了Android Studio中使用ConstraintLayout布局的方法,通过创建布局文件、设置控件约束等步骤,快速上手UI设计,并提供了一个TV Launcher界面布局的绘制示例。
56 1
|
3月前
|
Android开发
Android Studio: 解决Gradle sync failed 错误
本文介绍了解决Android Studio中出现的Gradle同步失败错误的步骤,包括从`gradle-wrapper.properties`文件中获取Gradle的下载链接,手动下载Gradle压缩包,并替换默认下载路径中的临时文件,然后重新触发Android Studio的"Try Again"来完成同步。
1338 0
Android Studio: 解决Gradle sync failed 错误
|
3月前
|
Java Android开发 芯片
使用Android Studio导入Android源码:基于全志H713 AOSP,方便解决编译、编码问题
本文介绍了如何将基于全志H713芯片的AOSP Android源码导入Android Studio以解决编译和编码问题,通过操作步骤的详细说明,展示了在Android Studio中利用代码提示和补全功能快速定位并修复编译错误的方法。
132 0
使用Android Studio导入Android源码:基于全志H713 AOSP,方便解决编译、编码问题
|
3月前
|
API 开发工具 Android开发
Android Studio:解决AOSP自编译framework.jar引用不到的问题
在Android Studio中解决AOSP自编译framework.jar引用问题的几种方法,包括使用相对路径、绝对路径和通过`${project.rootDir}`动态获取路径的方法,以避免硬编码路径带来的配置问题。
234 0
Android Studio:解决AOSP自编译framework.jar引用不到的问题
|
3月前
|
Java 网络安全 开发工具
UNITY与安卓⭐一、Android Studio初始设置
UNITY与安卓⭐一、Android Studio初始设置
|
3月前
|
Java 开发工具 Android开发
Android Studio利用Build.gradle导入Git commit ID、Git Branch、User等版本信息
本文介绍了在Android Studio项目中通过修改`build.gradle`脚本来自动获取并添加Git的commit ID、branch名称和用户信息到BuildConfig类中,从而实现在编译时将这些版本信息加入到APK中的方法。
71 0