Android--ListView作用详解

1.ListView

  ListView列表视图控件是Android中常用的控件之一,其直接继承了AbsListView,是一个以垂直方式在项目中显示View视图的列表。ListView的数据项,来自一个继承了ListAdapter接口的适配器。

  ListView的常用属性一般就是用来设置列表的间隔、分割线、表头、表尾等属性的,常用属性有以下几个,并且Android也为其提供了对应的setter/getter方法:

  1. android:divider:使用一个Drawable或者color设置数据项之间的间隔样式。
  2. android:dividerHeight:设置数据项之间的间隔距离。
  3. android:entries:设置一个资源Id用于填充ListView的数据项。
  4. android:footerDividersEnabled:设定列表表尾是否显示分割线,如果有表尾的话。
  5. android:headerDividerEnabled:设定列表表头是否显示分割线,如果有表头的话。

  ListView提供了一些方法,用于操作ListView。这里介绍一些常用的方法,更多的请参见API文档:

  1. void addFooterView(View v):添加表尾View视图。
  2. boolean removeFooterView(View v):移除一个表尾View视图。
  3. void addHeaderView(View v):添加一个表头View视图。
  4. boolean removeHeaderView(View v):移除一个表头View视图。
  5. ListAdapter getAdapter():获取当前绑定的ListAdapter适配器。
  6. void setAdapter(ListAdapter adapter):设置一个ListAdapter适配器到当前ListView中。
  7. void setSelection(int posotion):设定当前选中项。
  8. long[] getCheckItemIds():获取当前选中项。

  作为一个列表选择控件,ListView具有一些选中选项可以触发的事件,但它本身没有定义这些事件,均继承自间接父类AdapterView。ListView支持的几个常用事件有以下几个:

  1. AdapterView.OnItemCLickListener:列表项被点击时触发。
  2. AdapterView.OnItemLongClickListener:列表项被长按时触发。
  3. AdapterView.OnItemSelectedListener:列表项被选择时触发。

2. ListView两种使用方式

        在Android项目中使用ListView,有两种方式,一种是通过一个继承了ListActivity的Activity,在其中设定ListAdapter,对于这种方式,比较适用于整个页面就是一个ListView;第二种方式就是直接使用ListView控件,这种方式也是项目中比较常用的方式。

        接下来就对这两种使用ListView方式进行详细讲解。首先新建一个listViewTest工程,并让Android studio帮我们自动生成主活动和布局。在activity_main.xml布局文件中添加两个按钮,如下所示:




    

        MainActivity的java代码如下所示:

package com.fd.listviewtest;

import android.content.Intent;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.View;

public class MainActivity extends AppCompatActivity implements View.OnClickListener {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        bindView();
    }

    private void bindView() {
        findViewById(R.id.btn_list_activity).setOnClickListener(this);
        findViewById(R.id.btn_list_view).setOnClickListener(this);
    }


    @Override
    public void onClick(View v) {
        Intent intent;
        switch (v.getId()){
            case R.id.btn_list_activity:
                intent = new Intent(this, UseListActivity.class);
                startActivity(intent);
                break;
            case R.id.btn_list_view:
                intent = new Intent(this, UseListViewActivity.class);
                startActivity(intent);
                break;
        }
    }
}

        布局和代码都很简单,这里就不作讲解了。

2.1 ListActivity

  ListActivity继承了Activity,并通过绑定一个ListAdapter来显示一个数据列表。需要注意的是,如果对列表项的数据格式没有特殊要求,它完全可以不使用布局文件即可创建一个ListView,因为ListActivity类本身已经包含了一个ListView。因此在onCreate()方法中,不需要调用setContentView()方法来从一个布局文件加载用户界面。

  在ListActivity的onCreate()方法中,可以直接使用this.setListAdapter()方法为这个ListView设定ListAdapter。如果想获得并操作这个ListActivity自带的ListView,可以使用this.getListView()方法获取。

        下面讲解一下使用继承ListActivity的方式来实现ListView࿰

你可能感兴趣的:(Android,android,gitee)