Android列表视图示例

时间:2020-02-23 14:29:01  来源:igfitidea点击:

我们已经了解了Android的许多其他布局,本教程将通过示例说明Android中的列表视图。

列表视图

是否要在应用程序中显示列表?Android的解决方案是提供列表视图布局。它是一种在垂直滚动列表中显示项目的布局。列表中的每个项目都位于列表上一个项目的下方。列表项存储在数组中,并使用从数组中提取项的适配器插入到列表中。列表视图是AdapterView的子类。自定义列表在移动应用程序中非常常见,而列表视图提供了一种创建自定义列表的非常简单的方法。它是最常用的布局之一,例如,当我们想要显示一组日期时,没有什么比列表更合适了。

列表视图属性

下面是列表视图的一些重要XML属性。

android:divider,用于列表项之间的绘制或者颜色绘制。

android:entries,引用数组资源填充列表视图。

android:headerDividersEnabled,用于在每个header视图后绘制分隔线。

android: footerDividersEanabled,用于绘制每个页脚视图。

列表查看方式

列表视图有许多公共方法,下面将对其中一些方法进行说明。

getAdapter():返回列表视图中使用的适配器。

addHeaderView():用于在列表顶部添加一个标题视图。

getAccessibilityClassName():返回object的类名。

getDivider():返回列表中每个项目之间的分隔符。

getDividerHeight():返回分割器高度。

isOpaque():显示列表是否不透明。

removeFooterView(View view):用于删除列表中先前添加的页脚视图。

removeHeaderView(View view):用于删除列表中先前添加的表头视图。

列表视图的构造函数

列表视图有四个不同的公共构造函数,如下所示:

  • ListView( Context context )

  • ListView( Context context, AttributeSet attrs )

  • ListView( Context context, AttributeSet attrs, int defStyleAttr )

  • ListView( Context context, AttributeSet attrs, AttributeSet attrs, int defStyleRes )

列表视图示例

下面是一个在Android中使用列表视图的示例。它显示了计算机科学中的语言列表。让我们先创建一个活动,

activity_main.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout 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"
 >

  <ListView
      android:id="@+id/mobile_list"
      android:layout_width="match_parent"
      android:layout_height="wrap_content" >
  </ListView>

</LinearLayout>

创建另一个布局作为活动_列表视图.xml然后粘贴这个代码

<?xml version="1.0" encoding="utf-8"?>
<!--  Single List Item Design -->

<TextView 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" >
</TextView>

MainActivity.java

package com.example.admin.listviewexample;

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.widget.ArrayAdapter;
import android.widget.ListView;

public class MainActivity extends AppCompatActivity {

  String[] mobileArray = {"Java","C++","C#","CSS",
          "HTML","XML",".Net","VisualBasic", "SQL", "Python", "PHP"};

  @Override
  protected void onCreate(Bundle savedInstanceState) {
      super.onCreate(savedInstanceState);
      setContentView(R.layout.activity_main);

      ArrayAdapter adapter = new ArrayAdapter<String>(this,
              R.layout.activity_listview, mobileArray);

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