android listview(安卓listview控件的用法)

admin 397 0

大家好,关于android listview很多朋友都还不太明白,不过没关系,因为今天小编就来为大家分享关于安卓listview控件的用法的知识点,相信应该可以解决大家的一些困惑和问题,如果碰巧可以解决您的问题,还望关注下本站哦,希望对各位有所帮助!

一、android ListView用法和属性

1、ListView是一个用来纵向显示条目的视图,这些条目内容来自于与该ListView相关联的ListAdapter.

2、android:divider//在列表条目之间显示的drawable或color

3、android:dividerHeight//用来指定divider的高度

4、android:entries//构成ListView的数组资源的引用。对于某些固定的资源,这个属性提供了比在程序中添加资源更加简便的方式

5、android:footerDividersEnabled//当设为false时,ListView将不会在各个footer之间绘制divider.默认为true。

6、android:headerDividersEnabled//当设为false时,ListView将不会在各个header之间绘制divider.默认为true

7、android:cacheColorHint//表明这个列表的背景始终以单一、固定的颜色绘制,可以优化绘制过程。

8、android:choiceMode//为视图指定选择的行为。可选的类型有:none、singleChoice、multipleChoice、multipleChoiceModal。

9、android:drawSelectorOnTop//若设为true,选择器将绘制在选中条目的上层。默认为false。

10、android:fastScrollEnabled//设置是否允许使用快速滚动滑块。

11、android:addStatesFromChildren//设置这个ViewGroup的drawable状态是否包括子View的状态。若设为true,当子View如EditText或Button获得焦点时,整个ViewGroup也会获得焦点。

12、android:alwaysDrawnWithCache//设置ViewGroup在绘制子View时是否一直使用绘图缓存。默认为true。

13、android:animationCache//设置布局在绘制动画效果时是否为其子View创建绘图缓存。若设为true,将会消耗更多的内存,要求持续时间更久的初始化过程,但表现更好。默认为true。

14、android:clipChildren//设置子View是否受限于在自己的边界内绘制。若设为false,当子View所占用的空间大于边界时可以绘制在边界外。默认为true。

15、android:clipToPadding//定义布局间是否有间距。默认为true。

16、android:descendantFocusability//定义当寻找一个焦点View的时候,ViewGroup与其子View之间的关系。可选项为:

17、//(1)beforeDescendants ViewGroup会比其子View更先获得焦点;

18、//(2)afterDescendants只有当无子View想要获取焦点时,ViewGroup才会获取焦点;

19、//(3)blockDescendants ViewGroup会阻止子View获取焦点

20、android:layoutAnimation//定义当ViewGroup第一次展开时的动画效果,也可人为地在第一次展开后调用。

21、android:persistentDrawingCache//定义绘图缓存的持久性。有如下可选项:

22、//(1)none当使用过后不保留绘图缓存

23、//(2)animation在layout animation之后保留绘图缓存

24、//(3)scrolling在Scroll操作后保留绘图缓存

25、android:listSelector//设置选中项显示的可绘制对象,可以是图片或者颜色属性。

26、android:scrollingCache//设置在滚动时是否使用绘制缓存。若设为true,则将使滚动表现更快速,但会占用更内存。默认为true。

27、android:smoothScrollbar//为真时,列表会使用更精确的基于条目在屏幕上的可见像素高度的计算方法。默认该属性为真,如果你的适配器需要绘制可变高的条目,他应该设为假。当该属性为真时,你在适配器在显示变高条目时,滚动条的把手会在滚动的过程中改变大小。当设为假时,列表只使用适配器中的条目数和屏幕上的可见条目来决定滚动条的属性。

28、android:stackFromBottom//设置GridView和ListView是否将内容从底部开始显示。

29、android:textFilterEnabled//当设为真时,列表会将结果过滤为用户类型。前提是这个列表的Adapter必须支持Filterable接口。

30、android:transcriptMode//设置列表的transcriptMode.有如下选项可选:

31、//(1)disabled禁用TranscriptMode,也是默认值;

32、//(2)normal当新条目添加进列表中并且已经准备好显示的时候,列表会自动滑动到底部以显示最新条目;

33、//(3)alwaysScroll列表会自动滑动到底部,无论新条目是否已经准备好显示.

二、如何在Android中使用listview

创建继承BaseAdapter并实现其抽象方法的类MyListViewAdapter

下面的讲解中,只创建自定义的适配器类,如何使用请参考android中常用控件的使用之ListView

创建类MyListViewAdapter,该类继承BaseAdapter,并实现其抽象方法:

View getView(int position,View convertView,ViewGroup parent);

getCount需要返回有多少个item,也就是说最会在listview中展示这么多行

getItem需要返回参数position位置的数据

2.给MyListViewAdapter类添加成员变量和构造方法

list表示要显示的数据,context变量在生成View对象时需要用到

构造方法:构造方法是为了给两个成员变量赋值

public MyListViewAdapter(List<String> list, Context context){

3.给getCount,getItem,getItemId方法添加代码

getCount需要返回有多少个item,也就是说最会在listview中展示这么多行,所以返回list.size

getItem需要返回参数position位置的数据,也就是list中第position项的值list.get(position)

public Object getItem(int position){

public long getItemId(int position){

getView方法是返回位置为position的View对象,第二个参数convertView考虑到资源重用问题,在上下滑动的过程中,需要显示某项的时候才会调用getView方法,而如果有某项被隐藏不显示,就会把不显示那一行的View作为convertView参数传入,如果没有某项被隐藏,convertView值为null。可以通过下面代码中的if(convertView!=null)中的输出来看哪一行被隐藏了。

public View getView(int position, View convertView, ViewGroup parent){

System.out.println("调用getView方法,显示position="+position+"项");

TextView t=(TextView) convertView.findViewById(R.id.firstTextView);

System.out.println(t.getText());

LayoutInflater layoutInflater=(LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);

convertView= layoutInflater.inflate(R.layout.item_mylistviewadapter, null);

TextView t=(TextView)(convertView.findViewById(R.id.firstTextView));

t.setText(list.get(position));

t.setBackgroundColor(Color.WHITE);

t.setBackgroundColor(Color.GRAY);

通过Context对象生成一个LayoutInflater对象

调用LayoutInflater对象的inflate方法生成控件对象,inflate方法的第一个参数为xml文件,第二个参数一般为null。返回值为该xml文件最外层的标签对象。

LayoutInflater layoutInflater=(LayoutInflater)context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);

LinearLayout convertView=(LinearLayout)layoutInflater.inflate(R.layout.item_mylistvie

三、android中listview怎么用

创建继承BaseAdapter并实现其抽象方法的类MyListViewAdapter

下面的讲解中,只创建自定义的适配器类,如何使用请参考android中常用控件的使用之ListView

创建类MyListViewAdapter,该类继承BaseAdapter,并实现其抽象方法:

View getView(int position,View convertView,ViewGroup parent);

getCount需要返回有多少个item,也就是说最会在listview中展示这么多行

getItem需要返回参数position位置的数据

2.给MyListViewAdapter类添加成员变量和构造方法

list表示要显示的数据,context变量在生成View对象时需要用到

构造方法:构造方法是为了给两个成员变量赋值

public MyListViewAdapter(List<String> list, Context context){

3.给getCount,getItem,getItemId方法添加代码

getCount需要返回有多少个item,也就是说最会在listview中展示这么多行,所以返回list.size

getItem需要返回参数position位置的数据,也就是list中第position项的值list.get(position)

public Object getItem(int position){

public long getItemId(int position){

getView方法是返回位置为position的View对象,第二个参数convertView考虑到资源重用问题,在上下滑动的过程中,需要显示某项的时候才会调用getView方法,而如果有某项被隐藏不显示,就会把不显示那一行的View作为convertView参数传入,如果没有某项被隐藏,convertView值为null。可以通过下面代码中的if(convertView!=null)中的输出来看哪一行被隐藏了。

public View getView(int position, View convertView, ViewGroup parent){

System.out.println("调用getView方法,显示position="+position+"项");

TextView t=(TextView) convertView.findViewById(R.id.firstTextView);

System.out.println(t.getText());

LayoutInflater layoutInflater=(LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);

convertView= layoutInflater.inflate(R.layout.item_mylistviewadapter, null);

TextView t=(TextView)(convertView.findViewById(R.id.firstTextView));

t.setText(list.get(position));

t.setBackgroundColor(Color.WHITE);

t.setBackgroundColor(Color.GRAY);

通过Context对象生成一个LayoutInflater对象

调用LayoutInflater对象的inflate方法生成控件对象,inflate方法的第一个参数为xml文件,第二个参数一般为null。返回值为该xml文件最外层的标签对象。

LayoutInflater layoutInflater=(LayoutInflater)context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);

LinearLayout convertView=(LinearLayout)layoutInflater.inflate(R.layout.item_mylistvie

好了,关于android listview和安卓listview控件的用法的问题到这里结束啦,希望可以解决您的问题哈!