• 无涯教程-Android - List View函数


    Android ListView 是垂直滚动列表中显示的视图,使用 Adapter 从列表(如数组或数据库)中获取内容的列表项会自动插入列表中。

    List View

    适配器(Adapter)实际上是UI组件和将数据填充到UI组件中的数据源之间的桥梁,适配器保存数据并将数据发送到适配器视图,该视图可以从适配器视图获取数据,并在不同的视图上显示数据。

    ListView 和 GridView 是 AdapterView 的子类,可以通过将它们绑定到 Adapter 来填充它们,该适配器检索来自外部源的数据,并创建一个表示每个数据条目的视图。

    Android提供了Adapter的多个子类,这些子类可用于检索各种类型的数据并为AdapterView构建视图(即ListView或GridView)。常见的适配器是ArrayAdapter,Base Adapter,CursorAdapter,SimpleCursorAdapter,SpinnerAdapter和WrapperListAdapter。

    List View - 属性

    以下是特定于GridView的重要属性-

    Sr.NoAttribute & 描述
    1

    android:id

    这是唯一标识布局的ID。

    2

    android:divider

    这是可绘制的或可在列表项之间绘制的颜色。

    3

    android:dividerHeight

    这指定分隔线的高度。可以是px,dp,sp,in或mm。

    4

    android:entries

    指定对将填充ListView的数组资源的引用。

    5

    android:footerDividersEnabled

    当设置为false时,ListView将不会在每个页脚视图之前绘制分隔线。默认值是true。

    6

    android:headerDividersEnabled

    设置为false时,ListView不会在每个标题视图之后绘制分隔线。默认值是true。

    ArrayAdapter

    当您的数据源是数组时,可以使用此适配器。默认情况下,ArrayAdapter通过在每个项目上调用toString()并将其内容放置在TextView中,为每个数组项目创建一个视图。假设您有一个要在ListView中显示的字符串数组,请使用构造函数初始化一个新的ArrayAdapter,以指定每个字符串和字符串数组的布局-

    ArrayAdapter adapter = new ArrayAdapter<String>(this,R.layout.ListView,StringArray);

    这是此构造函数的参数-

    • 第一个参数 this 是应用程序context上下文,在大多数情况下,请将其保留为 this 。

    • 第二个参数将在XML文件中进行布局定义,并为数组中的每个字符串 TextView组件 。

    • 最终参数是将在文本视图中填充的字符串数组。

    创建数组适配器后,只需在 ListView 对象上调用 setAdapter(),如下所示-

    ListView listView = (ListView) findViewById(R.id.listview);
    listView.setAdapter(adapter);

    您将在XML文件的res/layout目录下定义列表视图。对于无涯教程的示例,无涯教程将使用activity_main.xml文件。

    ArrayAdapter - 示例

    下面的示例将引导您完成简单的步骤,以展示如何使用ListView创建自己的Android应用程序。

    以下是修改后的主要Activity文件 src/com.example.ListDisplay/ListDisplay.java 的内容。

    package com.example.ListDisplay;
    
    import android.os.Bundle;
    import android.app.Activity;
    import android.view.Menu;
    import android.widget.ArrayAdapter;
    import android.widget.ListView;
    
    public class ListDisplay extends Activity {
       // Array of strings...
       String[] mobileArray = {"Android","IPhone","WindowsMobile","Blackberry",
          "WebOS","Ubuntu","Windows7","Max OS X"};
       
       @Override
       protected void onCreate(Bundle savedInstanceState) {
          super.onCreate(savedInstanceState);
          setContentView(R.layout.activity_main);
          
          ArrayAdapter adapter = new ArrayAdapter(this, 
             R.layout.activity_listview, mobileArray);
          
          ListView listView = (ListView) findViewById(R.id.mobile_list);
          listView.setAdapter(adapter);
       }
    }

    以下是 res/layout/activity_main.xml 文件的内容-

     xmlns:android="http://schemas.android.com/apk/res/android"
       xmlns:tools="http://schemas.android.com/tools"
       android:layout_width="match_parent"
       android:layout_height="match_parent"
       android:orientation="vertical"
       tools:context=".ListActivity" >
    
       
          android:id="@+id/mobile_list"
          android:layout_width="match_parent"
          android:layout_height="wrap_content" >
       
     
    

    以下是 res/values/strings.xml 的内容,以定义两个新的常量-

    xml version="1.0" encoding="utf-8"?>
    
        name="app_name">ListDisplay
        name="action_settings">Settings
    

    以下是 res/layout/activity_listview.xml 文件的内容-

    xml version="1.0" encoding="utf-8"?>
    
    
     xmlns:android="http://schemas.android.com/apk/res/android"
       android:id="@+id/label"
       android:layout_width="fill_parent"
       android:layout_height="fill_parent"
       android:padding="10dip"
       android:textSize="16dip"
       android:textStyle="bold" >
    

    单击"运行Eclipse运行图标工具栏。 Android studio将应用程序安装在您的AVD上并启动它,如果设置和应用程序一切正常,它将在"Emulator"窗口中显示-

    List View

    SimpleCursorAdapter

    当您的数据源是数据库Cursor时,可以使用此适配器,使用 SimpleCursorAdapter 时,必须指定用于 Cursor 中每一行的布局,以及Cursor中的获取哪些值显示。

    如果要获取创建人员姓名和电话列表,则可以执行查询,该查询返回一个Cursor,其中包含每个人的一行以及姓名和电话列。然后,您创建一个字符串数组,该字符串数组为实图填充数据

    String[] fromColumns = {ContactsContract.Data.DISPLAY_NAME, 
       ContactsContract.CommonDataKinds.Phone.NUMBER};
    int[] toViews = {R.id.display_name, R.id.phone_number};

    实例化SimpleCursorAdapter时,传递用于每个输出的布局,包含输出的Cursor以及这两个数组-

    SimpleCursorAdapter adapter = new SimpleCursorAdapter(this, 
       R.layout.person_name_and_number, cursor, fromColumns, toViews, 0);
            
    ListView listView = getListView();
    listView.setAdapter(adapter);

    然后,SimpleCursorAdapter使用所提供的布局为Cursor中的每一行创建一个视图,方法是将" from Columns"项插入相应的 toViews 视图。

    Android 中的 List View函数 - 无涯教程网无涯教程网提供Android ListView 是垂直滚动列表中显示的视图,使用 Adapter 从列表(如数组或数据库)...https://www.learnfk.com/android/android-list-view.html

  • 相关阅读:
    ios下overflow-x:hidden 不起作用
    【Verilog基础】【总线协议】AXI、AHB、APB总线对比
    高亲和力丨艾美捷DetergentOUT GB-S10去垢剂研究
    链表经典热门考题(上篇)
    vivo 海量基础数据计算架构应用实践
    Docker入门
    DS18B20 数字温度传感器实验
    用生活的栗子去理解JavaScript的Prmoise更通俗易懂
    教你如何与同事相处
    手写签名到背景上合为1张图
  • 原文地址:https://blog.csdn.net/w116858389/article/details/132584681