高级控件安卓5——滚动视图列表视图[ListViewSimpleAdapter类]

Posted ***半夏微凉***

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了高级控件安卓5——滚动视图列表视图[ListViewSimpleAdapter类]相关的知识,希望对你有一定的参考价值。

滚动视图 

              <ScrollView

                          android: layout_width="fill_parent"

                          android: layout_height="fill_parent">

               </ScrollView>

     滚动试图指的是提供一个专门的容器,可以装下多于屏幕宽度的组件,而后采用拖拽的方式

显示所有在ScrollView中的组件

     注意:滚动视图中只能有一个组件

列表视图【ListView、SimpleAdapter类】

   1.ListView控件的特点:每个列表项独占一行,每行的布局都相同。

     2.使用SimpleAdapter类设置列表视图

        SimpleAdapter类的主要功能是将List集合的数据转换为ListView可以支持的数据。

      new SimpleAdapter ( 上下文对象this, 列表的数据, 列表项的布局资源文件,

                            键名数组【new String[ ]{"标签名"}】,列表项所有控件的索引值【new int[ ]{R.id.控件id】)

方法

描述

public SimpleAdapter ( Context context,

List<? extends Map<String,?>>,

int resource, String[] from, int[] to)

创建SimpleAdapter对象,需要传入Context对象,封装的List集合,要使用的布局文件ID,需要显示的key(对应Map)、组件的ID

public int getCount()

得到保存集合的个数

public Object getItem(int position)

取得指定位置的对象

public long getItemId(int position)

取得指定位置对象的ID

public void notifyDataSetChanged()

当列表项发生改变时,通知更新显示ListView

 

 

 

 

 

 

 

 

 

 

 

列表项显示模板——res/layout/data_list.xml

 

ListView事件

方法

描述

public void setOnItemSelectedListener(

AdapterView.OnItemSelectedListener listener)

选项选中时触发

public void setOnItemClickListener(

AdapterView.OnItemClickListener listener)

选项单击时触发

public void setOnItemLongListener(

AdapterView.OnItemLongListener listener)

选项长按时触发

 

 

 

 

 

 

 

 

 

 

 1         ListView lv=(ListView)findViewById(R.id.listView);
 2     List<Map<String,Object>> list=new ArrayList<Map<String,Object>>();
 3     //从数组资源中获取数据
 4     String[] data=getResources().getStringArray(R.array.haha);
 5     for(int i=0;i<data.length;i++){
 6         Map<String,Object> map=new HashMap<String,Object>();
 7         map.put("img", R.drawable.b);
 8         map.put("txt", data[i]);
 9         list.add(map);
10     }
11 //参数列表:上下文对象、列表的数据、列表项的布局资源文件、键名数组、列表项所有控件的索引值
12     SimpleAdapter adapter=new SimpleAdapter(this, list,R.layout.data_list, new String[]{"img","txt"}, new int[]{R.id.Dataimg,R.id.Datatv});
13     lv.setAdapter(adapter);
14 
15 //设置ListView的单击事件
16     lv.setOnItemClickListener(new OnItemClickListener() {                  
17             /**  ListView选项单击时触发
18              *   adp 取得AdapterView对象
19              *   view 取得AdapterView的父组件
20              *   position 取得Adapter的操作位置
21              *   id 取得ListView所在行的编号
22              */
23         public void onItemClick(AdapterView<?> adp, View view, int position, long id) {
24                 Object obj=adp.getItemAtPosition(position);
25                 Map<String, Object> objs=(Map<String, Object>)obj;
26                 String str= (String)objs.get("txt");
27                 Toast.makeText (Listview.this, str, 1000).show();
28         }
29     });
30     
SimpleAdapter与List事件的使用——部分代码

 

以上是关于高级控件安卓5——滚动视图列表视图[ListViewSimpleAdapter类]的主要内容,如果未能解决你的问题,请参考以下文章

Qt入门系列开发教程高级控件篇QListview列表视图

树列表视图控件

Android-高级控件-下拉列表(Spinner)&列表视图(ListView)

Android基础——高级UI组件:下拉框,列表,滚动条视图

列表视图--ListView相关类及其适配器

如何单击列表视图项中的各个控件而不影响其他列表视图项中的控件?