Android中的ListView(高级控件Widget)

Android中的四大组件:Activity----活动

           BroadCastReceiver-----广播接收器

           Service------服务

           ContentProvider----内容提供器

这里来介绍一下Activity中的listview:列表视图。通过这个控件用户可以与列表互动,互动就会有事件的触发,这个控件就是用户想要通过点击列表中的任意条目有事件的反馈,就要通过注册OnItemClickListener来监听这一类事件。

加载listview有两种方法:第一种是继承Activity,自己实现ListView的标记(id),第二种:是继承ListActicity,系统实现ListView标记(id),然而通过这两种方式时,都要通过Adapter(适配器)来设置显示列表的内容。adapter也可以是一个简单数组ArrayAdapter,也可以是游标(simpleCursorAdapter),还可以采用继承BaseAdaptger来自定义Adapter绑定数据。

//新建一个布局文件(music_layout.xml),采用线性布局,增加一个ListView控件

//新建一个MusicActivity,她继承于Activity,重写Oncreat()方法来初始化music_layout.xml布局

//通过ArrayAdapter来绑定数据,并注册onItemClickListener监听

music_layout.xml的代码:

只写一个控件ListView

<ListView

  android:id="@+id/music_list"

  android:layout_width="fill_parent"

  android:layout_height="wrap_content"

/>

MusicActivity里面的代码:

/**

*采用继承Activity来演示Listview控件的使用

*@author Catherine

*

*/

public class MusicActivityy extends Activity{

/*定义一个ListView成员变量来接收ListView的对象*/

private  ListView  mListView;

//初始化列表显示的内容

String [] listdatas={"From sarah with love ","Image me without you","far away from home"};

@Override

protected void onCreate(Bundle savedInstanceState){

super.onCreate(savedInstanceState);

setContentView(R.layout.music_layout);

mListView=(ListView)findviewByid(R.id.music_list);

setTitle("ListView实例演示');

//调用方法

initData();

}

private void intiData(){

//实例化一个数组Adapter,三个参数,this

//表示需要当前引用上下文,第二个参数列表条目表示显示的布局,这里我们调用了系统自带的布局,第三个参数,绑定显示的数据,传入数组

ArrayAdapter<String> arrays =new  ArrayAdapter<String>(this,android.R.Layout.Simple_List_item_1,listDatas);

//调用ListView控件的setAdapter方法绑定adapter

mListView.setAdapter(arrays);

//注册条目单机事件

mListView.setOnItemClickListener(onItemClickListener);

}

//通过局部类来实例化单机事件条目的监听器

OnItemClickListener onItemClickListener=new OnItemClickListener(){

@Override

public void onItemClickListener(AdapterView<?> adapter,View v,int position,long id)

{

//这里的adapter是绑定的那个adapter,v是条目显示的view,position,v对应的位置,id:条目的id

//通过Toast来显示响应列表条目的单机事件

Toast.makeText(MusicActivity.this,"onItemClick点击位置是"+position,Toast.LENGTH_SHORT).show();

}

}

}

一切只是为了充实自己!!stay hungry and stay foolish!!
原文地址:https://www.cnblogs.com/Catherine-Brain/p/3153996.html