Android 基础可扩展列表适配器与实例
什么是Android中的基础可扩展列表适配器?
当我们必须显示一个嵌套的列表视图时,基础可扩展列表适配器在安卓中被使用。我们将通过一个例子来理解嵌套列表视图。我们必须显示技术堆栈以及其中使用的编程语言。因此,我们可以在列表视图中显示技术堆栈,如Android开发、IOS开发和Web开发。每个技术栈都有不同的编程语言,所以当用户点击任何一个技术栈时,我们可以显示编程语言的列表。通过这种方式,我们将能够实现一个嵌套的列表视图。为了实现嵌套列表视图,我们将在我们的安卓应用程序中使用一个基础可扩展列表适配器。
实现基础可扩展列表适配器
在这篇文章中,我们将创建一个简单的应用程序,其中我们将显示技术堆栈的列表。当用户点击任何一个技术栈时,我们将显示可用于该特定技术栈的编程语言。我们将按照一步一步的指南来实现安卓应用程序中的敬酒信息。
第1步:在Android Studio中创建一个新项目
导航到Android studio,如下图所示。在下面的屏幕上点击新项目来创建一个新的Android Studio项目。
点击新项目后,你会看到下面的屏幕。
在这个屏幕中,我们必须简单地选择空活动并点击下一步。点击下一步后,你会看到下面的屏幕。
在这个屏幕上,我们必须简单地指定项目名称。然后包的名称将被自动生成。
注意 - 确保将语言选择为Kotlin。
在指定了所有的细节后,点击完成,创建一个新的Android studio项目。
一旦我们的项目被创建,我们将看到两个文件被打开,即 activity_main.xml 和 MainActivity.kt 文件。
第2步:使用 activity_main.xml 工作
导航到 activity_main.xml。如果这个文件不可见。要打开这个文件。在左边的窗格中导航到app>res>layout>activity_main.xml来打开这个文件。打开这个文件后。将下面的代码添加到其中。在代码中添加注释,以便详细了解。
解释 – 在上面的代码中,我们正在创建一个根布局作为我们的相对布局。在这个相对布局中,我们正在创建一个简单的文本视图,用来显示应用程序的标题。之后,我们创建了一个可扩展的列表视图部件,我们将用它来显示技术堆栈的列表,以及我们应用程序中的编程语言。
第3步:为TechStackItem创建一个新的模态类
现在我们将为我们的技术栈项目创建一个新的模态类,它将包含两个变量,一个是技术栈名称,一个是我们必须在该技术栈中显示的编程语言列表的数组列表变量。为了创建这个类。导航到app>java>你的应用程序的包名>右键点击它>新建>Java/Kotlin类,并将其命名为TechStackItem,并添加以下代码。
第4步:为编程语言列表项目创建一个新的布局文件。
由于我们将创建一个可扩展的列表视图,所以我们必须创建一个单独的项目视图,我们必须为我们的编程语言的列表视图显示。为了创建它,请导航到app>res>layout>右键点击它>New>Layout Resource file,将其命名为programming_lng_list_item,并添加以下代码。
解释:在上面的代码中,我们正在创建一个简单的文本视图,我们将用它来显示我们编程语言列表视图中的项目。
第5步:为技术栈列表项目创建一个新的布局文件
由于我们在点击技术栈时显示编程语言的列表。为了显示技术栈,我们将不得不为它创建一个单独的布局文件。为了创建一个新的布局文件。导航到app>res>layout>右键点击它>New>Layout Resource file,并将其命名为tech_stack_list_item,并添加以下代码。
解释 – 在上面的代码中,我们只是创建了一个文本视图,我们将用它来显示技术栈的文本。我们将使用这个布局文件来显示技术栈的列表视图。
第6步:创建一个适配器类来设置数据到我们的布局文件中
现在我们已经创建了用于显示用户界面的布局文件。之后,我们必须设置在我们的布局文件中显示哪些数据。为了设置这些数据,我们必须创建一个适配器类。为了创建这个适配器类。导航到app>java>你的应用程序的包名>右键点击它>新建>Java/Kotlin类,将其命名为CustomListViewAdapter并添加以下代码。
解释 - 在上面的代码中,首先我们用BaseExpandableListAdapter来扩展我们的适配器类,并将我们的数据列表作为一个参数传入其中。现在在这个类中,我们正在覆盖BaseExpandableListAdapter类的方法。这些方法如下
- getGroupCount() – 在这个方法中,我们必须返回技术栈列表的大小,这是我们的父列表。
-
getChildrenCount() – 在这个方法中,我们必须返回我们的编程语言列表的大小,这是我们的子列表。
-
getGroup() – 在这个方法中,我们必须返回包含技术栈名称和该技术栈中的编程语言的技术栈列表项目组。
-
getChild() – 在这个方法中,我们必须返回每个技术栈的编程语言列表中的编程语言项目。
-
getGroupId() – 在这个方法中,我们必须简单地返回组的位置。
-
getChildId() – 在这个方法中,我们必须简单地返回孩子的位置。
-
hasStableIds() – 在这个方法中,我们必须简单地返回true,因为我们必须为我们的列表视图项目显示稳定的ID。
-
getGroupView() – 在这个方法中,我们要为我们的父级列表视图充实布局文件,在我们的例子中是tech stack,所以我们将充实tech_stack_list_item布局。
-
getChildView() – 在这个方法中,我们将为我们的子列表视图充实布局文件,在我们的例子中是编程语言,所以我们将充实编程_lng_list_item布局。
-
isChildSelectable() – 在这个方法中,我们将返回true,因为我们必须为我们的可扩展列表视图设置点击监听器。
第7步 :使用MainActivity.kt
导航到MainActivity.kt。如果该文件不可见。要打开这个文件。在左侧窗格中导航到app>java>你的应用程序的包名>MainActivity.kt来打开这个文件。打开这个文件后。将下面的代码添加到其中。在代码中加入注释,以便详细了解。
解释 > 在上面的代码中,首先我们为我们的techStack列表创建变量,以创建一个新的数组列表,然后我们为我们的适配器创建一个新的变量,之后我们为可扩展列表视图创建一个变量。在创建变量后,我们在创建方法中初始化所有变量。我们正在将我们的列表传递给我们的适配器,并将该适配器设置为我们的可扩展列表视图。
在初始化我们的变量后,我们将数据传递给它。之后,我们将通知适配器列表中的数据已经被改变。
在为我们的可扩展列表视图设置数据后,我们正在为我们的可扩展列表视图添加子点击监听器和组点击监听器。在每个方法中,我们在点击时显示一个祝酒词。
添加完上述代码后,现在我们只需点击顶部栏的绿色图标,就可以在移动设备上运行我们的应用程序。
注意 - 确保你已经连接到你的真实设备或模拟器上。
总结
在上面的教程中,我们学习了什么是基础可扩展列表适配器,以及如何在我们的安卓应用程序中使用它来显示可扩展列表视图。