ArrayAdapter(Context context, int textViewResourceId, List<T> objects)ArrayAdapter(Context context, int textViewResourceId, List<T> objects)继续Android控件开发之四----ListView(1)下面在介绍下ArrayAdapter的相关知识

给出ArrayAdapter的构造函数

(1)ArrayAdapter(Context context, int textViewResourceId) 
第一个参数context,第二个参数是指要显示的布局(包括TextView)的ID(The resource ID for a layout file containing a TextView to use when instantiating views.)


(2)ArrayAdapter(Context context, int resource, int textViewResourceId)
第一个参数context,第二个参数是指要显示的布局(包括TextView)的ID,第三个参数是参数2中布局中需要显示的TextView的ID;


(3)ArrayAdapter(Context context, int textViewResourceId, T[] objects) (4)ArrayAdapter(Context context, int textViewResourceId, List<T> objects) 

第一个参数context,第二个参数是指要显示的布局(包括TextView)的ID,第三个参数需要显示的数据源;


(5)ArrayAdapter(Context context, int resource, int textViewResourceId, T[] objects) (6)ArrayAdapter(Context context, int resource, int textViewResourceId, List<T> objects) 

第一个参数context,第二个参数是指要显示的布局(包括TextView)的ID,第三个参数是参数2中布局中需要显示的TextView的ID,第四个参数需要显示的数据源;


下面给个例子,是刚开始没有数据,动态增加数据,用(1)ArrayAdapter(Context context, int textViewResourceId)这个构造函数,这里也可以用构造函数(2),只要在构造函数那增加要显示的TextView的ID

package com.potato;import android.app.ListActivity;import android.os.Bundle;import android.view.Menu;import android.view.MenuItem;import android.widget.ArrayAdapter;import android.widget.ListView;public class ListViewArrayAdapterListActivity extends ListActivity   // 注1{intmCount= 0;ArrayAdapter<String>mAdapter;/** Called when the activity is first created. */@Overridepublic void onCreate(Bundle savedInstanceState){super.onCreate(savedInstanceState);setContentView(R.layout.main);final ListView list = getListView();   // 注2mAdapter = new ArrayAdapter<String>(this,  // 注5android.R.layout.simple_list_item_1);list.setAdapter(mAdapter);}@Overridepublic boolean onCreateOptionsMenu(Menu menu)          // 注3{menu.add(0, 1, 1, "add");return super.onCreateOptionsMenu(menu);}@Overridepublic boolean onOptionsItemSelected(MenuItem item)    // 注3{switch (item.getItemId()){case 1:{mCount++;// 实现实时更新,无需其他操作// adapter.add()和items.add()操作的是同一个List<T>对象,// 不同的是adapter.add()完成后会自动更新UI,// items.add()之后还要显示的调用adapter.notifyDataSetChanged()来更新UI。mAdapter.add("item" + mCount);// 注4}break;}return super.onOptionsItemSelected(item);}}

注1

ListActivity是继承与Acitvity,会在后面的章节会解释,这里先不做介绍;

注2

getListView()是在继承与ListActivity的情况下,获取ListView对象;

注3

这两个函数用于处理Optionmenu,后续章节介绍;

注4

实现数据的动态加载,增加了数据,自动就会刷新ui,数据就会显示在ListView上;

这里有两种实现方式:

(1)直接调用arrayAdapter的add,把数据加入,这样ui会自动更新;

(2)另一种是先吧数据加到链表中,在通过adapter.notifyDataSetChanged(),实现数据的更新;

注5

可以使用构造函数(2)

mAdapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, android.R.id.text1);


main.xml

<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    android:orientation="vertical"    android:layout_width="fill_parent"    android:layout_height="fill_parent"    android:background="@drawable/drawable_backgroud"    >    <!-- <Button android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="Add item"android:id="@+id/btnAdd" /> --><ListView     android:id="@android:id/list"     android:layout_width="fill_parent"android:layout_height="fill_parent"android:cacheColorHint="#00000000"android:fadingEdge="vertical" android:background="@drawable/drawable_backgroud"/><TextView    android:id="@android:id/empty"    android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="no data"    /></LinearLayout>

至于构造函数3,4,5,6在上一篇博文ListView(1)中已经使用过。。。。


有问题请留言或者发邮件。。。

联系方式:ligexiao@gmial.com

更多相关文章

  1. mybatisplus的坑 insert标签insert into select无参数问题的解决
  2. 箭头函数的基础使用
  3. Python技巧匿名函数、回调函数和高阶函数
  4. python list.sort()根据多个关键字排序的方法实现
  5. Android:Gtalk(显示好友列表)
  6. Android之TabHost
  7. popwindow动画显示消失,activity切换动画
  8. android 显示特殊符号
  9. [转]android 一直在最前面的浮动窗口效果

随机推荐

  1. Android中点击事件之FocusChangedListene
  2. Android(安卓)终端命令安装 apk 应用程序
  3. android wifi 设置 控制开关
  4. Rk3399 android7.1 camera 分析
  5. Android获取文件的MD5值
  6. Android(安卓)文件读写工具类
  7. [置顶] Android(安卓)Studio 配置
  8. Android(安卓)linux adc驱动(s5pv210)
  9. android popupwindow 中listview 无法点
  10. Android中dp和px之间进行转换