首先是stackFromBottom属性,这只该属性之后你做好的列表就会显示你列表的最下面,值为true和false
android:stackFromBottom="true"
第二是 transciptMode属性,需要用ListView或者其它显示大量Items的控件实时跟踪或者查看信息,并且希望最新的条目可以自动滚动到可视范围内。通过设置的控件transcriptMode属性可以将Android平台的控件(支持ScrollBar)自动滑动到最底部。
android:transcriptMode="alwaysScroll"
第三cacheColorHint属性,很多人希望能够改变一下它的背景,使他能够符合整体的UI设计,改变背景背很简单只需要准备一张图片然后指定属性 android:background="@drawable/bg",不过不要高兴地太早,当你这么做以后,发现背景是变了,但是当你拖动,或者点击list空白位置的时候发现ListItem都变成黑色的了,破坏了整体效果。
如果你只是换背景的颜色的话,可以直接指定android:cacheColorHint为你所要的颜色,如果你是用图片做背景的话,那也只要将android:cacheColorHint指定为透明(#00000000)就可以了
第四divider属性,该属性作用是每一项之间需要设置一个图片做为间隔,或是去掉item之间的分割线
android:divider="@drawable/list_driver" 其中 @drawable/list_driver 是一个图片资源,如果不想显示分割线则只要设置为android:divider="@drawable/@null" 就可以了
第五fadingEdge属性,上边和下边有黑色的阴影
android:fadingEdge="none" 设置后没有阴影了~
第五scrollbars属性,作用是隐藏listView的滚动条,
android:scrollbars="none"与setVerticalScrollBarEnabled(true);的效果是一样的,不活动的时候隐藏,活动的时候也隐藏
第六fadeScrollbars属性,android:fadeScrollbars="true" 配置ListView布局的时候,设置这个属性为true就可以实现滚动条的自动隐藏和显示。
在android开发中ListView是比较常用的组件,它以列表的形式展示具体内容,并且能够根据数据的长度自适应显示。
列表的显示需要三个元素:
1.ListVeiw:用来展示列表的View。
2.适配器:用来把数据映射到ListView上的中介。
3.数据:具体的将被映射的字符串、图片,或者基本组件。
根据列表的适配器类型,列表分为三种,ArrayAdapter,SimpleAdapter和SimpleCursorAdapter其中以ArrayAdapter最为简单,只能展示一行字。SimpleAdapter有最好的扩充性,可以自定义出各种效果。 SimpleCursorAdapter可以认为是SimpleAdapter对数据库的简单结合,可以方面的把数据库的内容以列表的形式展示出来。一、
ArrayAdapter代码详解
首先在布局文件main.xml中定义ListView标签:
<ListView
android:id="@+id/listview"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
/>
代码实现:
public
class ArrayAdapterList extends Activity {
/** Called whenthe activity is first created. */
@Override
public
void onCreate(BundlesavedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
ListView listView = (ListView)findViewById(R.id.listview);
//定义一个数组
String[] arr = {"忘情水","冰雨","一起走过的日子"};
//将数据封装到ArrayAdapter
ArrayAdapter<String> arrayAdapter = newArrayAdapter<String>(this, android.R.layout.simple_list_item_1, arr);
//为ListView设置Adapter
listView.setAdapter(arrayAdapter);
}
}
上面代码使用了ArrayAdapter(Context context, int textViewResourceId, T[]objects)来装配数据,要装配这些数据就需要一个连接ListView视图对象和数组数据的适配器来完成两者的适配工作,ArrayAdapter的构造需要三个参数,依次为this,布局文件(注意这里的布局文件描述的是列表的每一行的布
局,android.R.layout.simple_list_item_1是系统定义好的布局文件只显示一行文字,数据源(一个数组)。同时用setAdapter()完成适配的最后工作。
textViewResourceId该参数决定每个列表项的外观形式,Android为该属性提供了如下属性值:
simple_list_item_1:每个列表项都是一个普通的TextView
simple_list_item_2:每个列表项都是一个普通的TextView(字体略大)
simple_list_item_multiple_choice:每个列表项都是带多选框的文本
simple_list_item_single_choice:每个列表项都是带多单选按钮的文本
simple_list_item_checked:每个列表项都是一个已勾选的列表项
运行结果:
二、SimpleAdapter代码详解
simpleAdapter的扩展性最好,可以定义各种各样的布局出来,可以放上ImageView(图片),还可以放上Button(按 钮),CheckBox(复选框)等等。下面的代码都直接继承了ListActivity,如果程序的窗口仅仅为了显示一个列表,则可以直接让Activity继承ListActivity来实现,ListActivity的子类无需调用setContentView()来显示某个页面,而是可以直接传入一个Adapter,ListActivity的子类就呈现出一个列表。
布局文件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"
>
<ListView
android:id="@+id/android:list"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
/>
<ImageView
android:id="@+id/header"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:paddingLeft="10dp"
/>
<TextView
android:id="@+id/name"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:paddingLeft="10dp"
/>
</LinearLayout>
在此布局文件中,应包含一个id为”@+id/android:list”的ListView,此id为Android系统内置ID
代码实现:
public
class SimpleAdapterList extends ListActivity {
/** Called whenthe activity is first created. */
//声明姓名和头像的数组变量
private String [] names = new String[]{"刘德华","张学友","黎明","郭富城"};
private
int[] imageIds = new
int[]{R.drawable.header01,R.drawable.header02,R.drawable.header03,R.drawable.header04};
@Override
public
void onCreate(BundlesavedInstanceState) {
super.onCreate(savedInstanceState);
//创建一个List集合
List<Map<String,Object>> listItems = newArrayList<Map<String,Object>>();
for(int i=0; i<names.length;i++){
Map<String,Object> listItem = new HashMap<String,Object>();
listItem.put("header", imageIds);
listItem.put("name", names);
listItems.add(listItem);
}
//创建一个SimpleAdapter
SimpleAdapter simpleAdapter = new SimpleAdapter(this, listItems, R.layout.main, new String[]{"header","name"}, new
int[]{R.id.header,R.id.name});
setListAdapter(simpleAdapter);
}
}
SimpleAdapter参数说明:
SimpleAdapter(Contextcontext, List<? extends Map<String, ?>> data, int resource,String[] from, int[] to)
data:该参数是一个List<? extendsMap<String, ?>>类型的集合对象,该集合中的每个对象生成一个列表项
resource:该参数指定使用的界面布局文件的ID
from:该参数是一个String[]类型的参数,该参数决定提取Map<String,?>对象中那些key对应的value来生成列表项
to:该参数决定使用哪些View组件来组合成一个列表项
运行结果:
相关推荐
Android 中几个常用属性的设置.doc android 读取文件内容操作.doc Android 选项卡效果.doc Android中 信息的输出——Log.v的使用.doc Android手机连接电脑详细图文教程.doc android横竖屏总结.doc Android 的...
Android 中几个常用属性的设置.doc android 读取文件内容操作.doc Android 选项卡效果.doc Android中 信息的输出——Log.v的使用.doc Android手机连接电脑详细图文教程.doc android横竖屏总结.doc Android 的手势...
前言 最近在做项目的过程中,在使用listview的时候遇到了设置item监听事件的时候在没有回调onItemClick 方法的问题。我的情况是在item中有一...2、在item最外层添加属性 android:descendantFocusability=”blocksDesce
这是同一个问题,Listview中点击item是会变颜色的,因为...2、listview中listselector属性的效果被覆盖了,比如列表的Item为一个占满单元格的ImageView的时候,ImageView如果有内容那么listSelector的效果就会被挡住 这
视差效果是什么? 所谓的视差效果在Web设计和移动应用中都非常常见,我们在一些主要的平台都可以发现它的身影,从Windows Phone到iOS乃至Android。...首先自定义几个属性,在之后可以用到: <?xml versi
包含有margin的layout是正常的几个基础布局。 解决方案: 在你的listview里面加上下面代码 android:divider=#00000000 android:dividerHeight=10dp android:layout_marginLeft=10dp android:layout_marginRig
Android+的一些特效,这些特效代码有:Android中的ImageView边框、Android开发培训课件.ppt、android ListView详解.doc、android 读取文件内容操作.doc、Android 选项卡效果.doc、Android 中几个常用属性的设置
Android开发开发技巧之 EditText 属性、 ProgressBar 各种样式大全 android用户界面之EditText教程实例汇 android用户界面之ListView教程实例汇 android用户界面之Toast教程实例汇 android用户界面之AlarmManager...
(2)掌握Intent的几种常用的属性。 (3)Android系统内置Intent的使用。 (4)了解Activity的生命周期 实验软、硬件环境 硬件:PC电脑一台; 配置:winxp或win7系统,内存大于4G,硬盘250G及以上 JDK1.7 、Eclipse...
Cursor前面说过,是一个指向数据源的随机迭代器,将View绑定到Cursor通常要设置这 样几个参数。一个是每一行的样式,称作Row Layout,其实就是一个普通的Layout的XML文件。还有就是一个列和现实控件的对应关系 。...
(2)掌握Intent的几种常用的属性。 (3)Android系统内置Intent的使用。 (4)了解Activity的生命周期 实验软、硬件环境 硬件:PC电脑一台; 配置:winxp或win7系统,内存大于4G,硬盘250G及以上 JDK1.7 、Eclipse...
|--缓存优化之几种方案lastModified |--缓存优化之本地缓存优化(超过规定值或SD卡容量不够时) |--网络post提交查询请求 |--网络之HttpClient的get和post用法 |--网络之判断网络状态是否可用 |--网络之设置apn |--...
我们对Android应用程序运行原理及布局文件可谓有了比较深刻的认识和理解,并且用“Hello World!”程序来实践证明了。在继续深入Android开发之旅之前,有必要解决前两篇中没有介绍的遗留问题:View的几种布局显示...
现在商城类的APP几乎都要用到流式布局来实现选择属性功能,在我的demo中是通过FlowLayout工具类实现流式布局 使用起来非常简单,十几行代码就可以实现; 在我们的项目中大部分都是单选效果,为了防止用到多选,demo...
更严重的是,嵌入几个使 用 layout_weight属性的LinearLayout 将会导致大量的开销,因为每个子视图都需要被测量两次。这是反复解析 布局文件时重要的一点,例如在ListView或者GridView中使用时。 观察你的布局...
根据对整个控件的效果分析,大致可以将控件分别从以下这几个角度进行分析: 1.首先涉及到自定义的ViewGroup,因为现有的控件没法满足我们的布局效果,就涉及到要重写onMeasure和onLayout,这里需要注意的问题是自定义...
带着下面几个问题一起来看一下。1.自定义一个布局让其作为跟布局2.提供切换加载 loading、空白页 empty、错误页 errror、内容页 content功能3.怎么让其取管理上边的四个页面?4.contentView 怎么添加?5.如果我想...
6个目标文件,EJB来模拟银行ATM机的流程及操作:获取系统属性,初始化JNDI,取得Home对象的引用,创建EJB对象,并将当前的计数器初始化,调用每一个EJB对象的count()方法,保证Bean正常被激活和钝化,EJB对象是用...