`
myeasyeye
  • 浏览: 17322 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
文章分类
社区版块
存档分类
最新评论

关于ListActivity

 
阅读更多
public class ListActivity extends Activity

Class Overview

An activity that displays a list of items by binding to a data source such as an array or Cursor, and exposes event handlers when the user selects an item.

通过绑定到数据源来展示数据的一个Activity,它的数据源来自数组或者游标,同时也会提供当用户选中某个items的处理事件函数。它继承于Activity,很多Activity中的方法它都能用。

ListActivity hosts a ListViewobject that can be bound to different data sources, typically either an array or a Cursor holding query results. Binding, screen layout, and row layout are discussed in the following sections.

ListActivity寄主一个ListView对象,ListView对象可以绑定不同的数据源,典型的就是一个数组或者是一个显示查询结果的游标Cursor。Binding, screen layout, and row layout将会在后面的部分讨论。

Screen Layout 屏幕布局

ListActivity has a default layout that consists of a single, full-screen list in the center of the screen. However, if you desire, you can customize the screen layout by setting your own view layout with setContentView() in onCreate(). To do this, your own view MUST contain a ListView object with the id "@android:id/list" (orlistif it's in code)

ListActivity 有一个默认的布局包含一个单独的,全屏的List在屏幕中央。不过你可以根据自己的想法,通过setContentView()方法设置你自己的布局文件来自定义屏幕布局。要这样做的话,你自己的视图必须包含一个ListView对象,这个ListView对象的ID必须是"@android:id/list" 的形式,(如果是在代码里就直接是list)。

Optionally, your custom view can contain another view object of any type to display when the list view is empty. This "empty list" notifier must have an id "android:id/empty". Note that when an empty view is present, the list view will be hidden when there is no data to display.

视情况而定,你定制的view可以包含另一个任何类型的view对象,当list视图为空的时候就会展示出来。这个空的列表的通知者必须有一个空的ID“android:id/empty”。注意的是当空的视图呈现的时候,而且没有要显示的数据,list的视图将会被隐藏。

The following code demonstrates an (ugly) custom screen layout. It has a list with a green background, and an alternate red "no data" message.

下面这段代码是一个很简单的定制布局文件。它的列表是绿色背景,并且是一个交替的红色“没有数据”的信息。

 <?xml version="1.0" encoding="utf-8"?>
 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
         android:orientation="vertical"
         android:layout_width="match_parent"
         android:layout_height="match_parent"
         android:paddingLeft="8dp"
         android:paddingRight="8dp">

     <ListView android:id="@android:id/list"
               android:layout_width="match_parent"
               android:layout_height="match_parent"
               android:background="#00FF00"
               android:layout_weight="1"
               android:drawSelectorOnTop="false"/>

     <TextView android:id="@android:id/empty"
               android:layout_width="match_parent"
               android:layout_height="match_parent"
               android:background="#FF0000"
               android:text="No data"/>
 </LinearLayout>

Row Layout

You can specify the layout of individual rows in the list. You do this by specifying a layout resource in the ListAdapter object hosted by the activity (the ListAdapter binds the ListView to the data; more on this later).

你可以在列表里面指定特定的行布局。你可以通过在ListAdapter对象里面指定一个布局资源文件,ListAdapter对象寄主在activity里面(ListAdpater把ListView和数据绑定)。

A ListAdapter constructor takes a parameter that specifies a layout resource for each row. It also has two additional parameters that let you specify which data field to associate with which object in the row layout resource. These two parameters are typically parallel arrays.

一个ListAdapter 构造器带了一个参数,这个参数指定了一个(针对每一行的)布局资源文件。它也有两个附加的参数,让你指定哪一个数据区域和哪个布局文件中的对象进行关联。这两个参数是典型的并行数组。

Android provides some standard row layout resources. These are in theR.layout class, and have names such as simple_list_item_1, simple_list_item_2, and two_line_list_item. The following layout XML is the source for the resource two_line_list_item, which displays two data fields,one above the other, for each list row.

Android提供了一些标准的行布局资源文件。这些在R.layout类中,他们这样命名,例如:simple_list_item_1, simple_list_item_2, and two_line_list_item。

下面这个XML布局文件是two_line_list_item资源文件的代码,展示了两个数据区域,一个在另外一个的上面。

<?xml version="1.0" encoding="utf-8"?>

<LinearLayoutxmlns:android=http://schemas.android.com/apk/res/android

android:layout_width="match_parent"

android:layout_height="wrap_content"android:orientation="vertical">

<TextViewandroid:id="@+id/text1"android:textSize="16sp"android:textStyle="bold"

android:layout_width="match_parent"android:layout_height="wrap_content"/>

<TextViewandroid:id="@+id/text2"android:textSize="16sp"android:layout_width="match_parent"

android:layout_height="wrap_content"/>

</LinearLayout>

Binding to Data 绑定数据

You bind the ListActivity's ListView object to data using a class that implements theListAdapter interface. Android provides two standard list adapters:SimpleAdapter for static data (Maps), andSimpleCursorAdapter for Cursor query results.

你把ListActivity的ListView对象与数据绑定,用一个继承ListAdapter接口的类实现。安卓提供了两个标准的listadapter适配器:SimpleAdapter用于静态数据(Map映射),和SimpleCursorAdapter用于游标查询结果。

The following code from a custom ListActivity demonstrates querying the Contacts provider for all contacts, then binding the Name and Company fields to a two line row layout in the activity's ListView。

下面的代码是一个定制的ListActivity范例,查询出所有的联系人,然后绑定姓名和公司地址到一个两行两列的布局文件在Activity的ListView中。

public class MyListAdapter extends ListActivity {

     @Override
     protected void onCreate(Bundle savedInstanceState){
         super.onCreate(savedInstanceState);

         // We'll define a custom screen layout here (the one shown above), but
         // typically, you could just use the standard ListActivity layout.
         setContentView(R.layout.custom_list_activity_view);

         // Query for all people contacts using the Contacts.People convenience class.
         // Put a managed wrapper around the retrieved cursor so we don't have to worry about
         // requerying or closing it as the activity changes state.
         mCursor = this.getContentResolver().query(People.CONTENT_URI, null, null, null, null);
         startManagingCursor(mCursor);

         // Now create a new list adapter bound to the cursor.
         // SimpleListAdapter is designed for binding to a Cursor.
         ListAdapter adapter = new SimpleCursorAdapter(
                 this, // Context.
                 android.R.layout.two_line_list_item,  // Specify the row template to use (here, two columns bound to the two retrieved cursor
 rows).
                 mCursor,                                              // Pass in the cursor to bind to.
                 new String[] {People.NAME, People.COMPANY},           // Array of cursor columns to bind to.
                 new int[] {android.R.id.text1, android.R.id.text2});  // Parallel array of which template objects to bind to those columns.

         // Bind to our new adapter.
         setListAdapter(adapter);
     }
 }
 

----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

ListAdapter

public interface ListAdapter implementsAdapter
android.widget.ListAdapter

Class Overview

Extended Adapter that is the bridge between aListView and the data that backs the list. Frequently that data comes from a Cursor, but that is not required. The ListView can display any data provided that it is wrapped in a ListAdapter.

ListAdapter继承于Adapter,是ListView和其支持list的数据的桥梁。数据经常来自于一个cursor,但并不一定是这样要求的。ListView可以显示任何由ListAdapter提供的数据。

也就是说,要让一个listview显示出来需要三个条件:

1. ListView (需要被显示的列表)。

2. Data, 与ListView绑定的数据,一般是一个Cursor或者一个字符串数组。

3. ListAdapter,是data和ListView的桥梁,起一个适配器的作用。

分享到:
评论

相关推荐

    ListActivity笔记

    在Android开发中,`ListActivity`是一个特殊类型的`Activity`,专门用于展示列表数据。它继承自`Activity`,并且提供了内置的布局管理器来显示一个`ListView`,简化了列表视图的创建和操作。这篇博客“ListActivity...

    Android学习4——ListActivity,TabActivity

    在Android开发中,ListActivity和TabActivity是两个非常重要的组件,它们帮助开发者构建用户界面,提供数据展示和交互的功能。本文将深入探讨这两个组件的概念、用法以及它们在实际项目中的应用。 首先,我们来了解...

    android 从activity用intent跳转到listactivity并在其中用simpleadapter在listview中显示数据列

    ListActivity是Android提供的一种专门用来展示列表的Activity,而SimpleAdapter则是将数据绑定到ListView的简单方式。现在我们详细讲解如何实现这个过程。 首先,我们从一个Activity(我们称之为源Activity)启动另...

    Android开发教程_018_使用ListActivity创建列表菜单_标清.flv

    Android开发教程_018_使用ListActivity创建列表菜单_标清

    android ListActivity 和 BaseAdapter 实例

    在Android开发中,`ListActivity`和`BaseAdapter`是两个关键组件,它们共同用于创建显示数据列表的应用界面。理解并熟练使用这两个组件对于构建用户友好的、数据驱动的Android应用至关重要。 `ListActivity`是...

    安卓ListActivity开发手册.doc

    【安卓ListActivity开发手册】 ListActivity是Android平台上用于构建基于列表的应用程序的一种特殊Activity。它直接继承自Activity,专门设计用来展示一个可交互的列表视图。开发者通常使用ListActivity来构建那些...

    Android中ListActivity用法实例分析

    在Android开发中,`ListActivity` 是一个特殊的`Activity`,专门用于展示列表数据。它继承自`Activity`,并且提供了内置的布局管理器来显示一个`ListView`,简化了开发者处理列表视图的工作。本篇文章将深入探讨`...

    本示例演示ListActivity、SimpleAdapter()方法的用法

    在Android开发中,`ListActivity`是一个特殊类型的`Activity`,专为展示列表数据而设计。它简化了在布局中包含`ListView`的过程,因为`ListActivity`默认将整个视图焦点放在一个`ListView`上。`ListActivity`的使用...

    ListActivity多层列表

    在Android开发中,`ListActivity`是Android SDK提供的一种特殊类型的Activity,专门用于展示列表数据。...此外,还可以参考Android官方文档和其他开发者分享的教程,以获取更多关于这两个组件的最佳实践和技巧。

    ListActivity的ListView外添加图片文字

    ### ListActivity的ListView外添加图片文字 在Android开发过程中,我们经常会遇到需要在`ListActivity`的`ListView`之外添加额外元素(如图片、文字等)的需求。这不仅可以提升应用的美观度,还能为用户提供更丰富...

    ListActivityDemo

    在Android开发中,`ListActivity` 是一个非常重要的组件,它是 `Activity` 的子类,专门用于展示列表数据。这个`ListActivityDemo`是开发者为了教学目的创建的一个示例项目,目的是帮助学习者理解如何使用`...

    安卓ListActivity开发手册范本.doc

    安卓ListActivity开发手册范本.doc

    Android-ListActivity实现列表[汇编].pdf

    【Android-ListActivity实现列表】 在Android开发中,ListActivity是一个专门用于展示列表的Activity,它简化了在应用中创建和管理ListView的过程。本篇内容将深入解析如何使用ListActivity来构建一个基本的列表...

    如何使用ListActivity中自带的ListView

    该资源讲解了如何使用ListActivity中自带的ListView. 如果在 onCreate 方法中添加代码 setContentView(R.layout.main); 来设置ListActivity的布局,那在layout文件中必须添加 ListView 控件,而且它的id为 ...

    android 以动态列表配置选项 ListActivity 与Menu整合技巧

    在Android开发中,`ListActivity`和`Menu`是两个重要的组件,它们分别用于展示列表数据和提供应用程序的菜单选项。本篇文章将深入探讨如何将`ListActivity`与`Menu`进行有效整合,以实现更加丰富的用户交互界面。 ...

    很不错的Android文件管理器程序,实现了界面ListActivity,以及文件、路径选择,具有良好的界面和不错的功能.zip

    本项目名为“很不错的Android文件管理器程序”,它利用了ListActivity来构建用户界面,并实现了文件和路径的选择功能,提供了一个美观且实用的交互体验。 首先,我们来详细了解一下ListActivity。ListActivity是...

    很不错的Android文件管理器程序,实现了界面ListActivity,以及文件、

    1. **ListActivity界面**: ListActivity是Android SDK中的一种特殊Activity,专门用于展示列表数据。在这个文件管理器中,开发人员利用ListActivity来构建用户界面,展示了文件和目录的层次结构。ListActivity简化了...

Global site tag (gtag.js) - Google Analytics