ListView

来源:互联网 发布:中国联合网络通信市分 编辑:程序博客网 时间:2024/06/17 14:25
ListView:以列表的方式来显示数据内容,这些内容来自于ListAdapter

让ListView显示在最上层:
myListView.bringToFront();


xml中ListView的属性 
1、android:listSelector="@drawable/drawable_list_item" 当前item高亮时,显示此drawable_list_item

2、android:drawSelectorOnTop 是否将selector显示在item的上方

3、android:fastScrollEnabled 是否启动快速滚动。

4、android:cacheColorHint :存颜色提示。它的值是一个颜色值,如#FFF,#FFFFFF等。 
【注意:最好要将这个属性设为@null或这与你背景颜色相同,否则会出现黑色背景框android:cacheColorHint="@null" 】 

5、android:scrollingCache :是否使用滚动缓存。 
设为true时,会在滚动过程中使用一个drawing cache,这样能使绘制变得更快,但会使用更多的内存。 
设为false时,就是不使用缓存。 

6、android:smoothScrollbar :是否平滑滚动条。 
设为true时,会更以更精确的方式计算滚动条大小,并且在滚动的过程中,实时的会对滚动条的大小进行计算。(所以如果各条数据的高度不一致时,会很耗性能,最好设为false)。 
设为false时,以粗略的方式来计算滚动条的大小(根据当前有多少条数据)。 

7、android:stackFromBottom :是否将内容从最后一个显示到第一个,并将滚动条放在最底部。 

8、android:transcriptMode :改写模式,它的值可以为disabled,normal,alwaysScroll 
disabled:在adapter的内容发生改变时,滚动条不发生变化 
normal:当收到notifyDataSetChanged等提示时,只有内容发生改变(如增加一个条目),滚动条会自动滚到底部 
alwaysScroll:当收到notifyDataSetChanged等提示时,不管内容改不改变,滚动条都将滚至底部 

9、android:textFilterEnabled :是否启用内容过滤。设为true时,会根据当前输入的文本,对列表内容进行过滤。 


10、android:choiceMode :选择行为的设置。可以设置的值none(默认),singleChoice(一个数据可以处于选中状态),multipleChoice(多个数据可以处于选中状态) 

11、android:divider :数据间的分隔线。颜色或drawable 

12、android:dividerHeight :分隔线的高度。 

13、android:entries :列表的数据。值为一个数组资源值。 

14、android:footerDividersEnabled :footer view间是否使用分隔线 

15、android:headerDividersEnabled :header view间是否使用分隔线


以下是事例:
主布局文件中必须包含一个ListView

android:background=“@drawable/bg“—设置背景图片

android:scrollingCache=“false“—按住界面拖动时界面是否随着手势移动

android:divider=“@drawable/line“—高度为2个像素的图片,设置间隔线

在string.xml文件中定义string数组 :

 <string-arrayname="countries_array">

       <item>Bahrain</item>

       <item>Bangladesh</item>

       <item>Barbados</item>

       <item>Belarus</item>

       <item>Belgium</item>

       <item>Belize</item>

       <item>Benin</item>

   </string-array>




//////////////用ListView显示String数组里面的数据////////////////

//----------------------------------------------------------

//string.xml文件

<?xml version="1.0"encoding="utf-8"?>

<resources>

    <stringname="hello">HelloWorld, MainActivity!</string>

    <stringname="app_name">GridViewDemo</string>

   <!–XML文件中定义string数组-->

    <string-arrayname="countries_array">

       <item>Bahrain</item>

       <item>Bangladesh</item>

       <item>Barbados</item>

       <item>Belarus</item>

       <item>Belgium</item>

       <item>Belize</item>

       <item>Benin</item>

    </string-array>

</resources>

//----------------------------------------------------------


//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-->

    <ListView

        android:id="@id/android:list"

        android:layout_width="match_parent"

        android:layout_height="match_parent"

        android:background="#00FF00"

        android:layout_weight="1"

        android:drawSelectorOnTop="false"/>

   

</LinearLayout>

//----------------------------------------------------------


//MainActivity.java文件

//继承自ListActivity,ListActivity是Activity的子类

public class MainActivity extends ListActivity{


        //static finalString[] COUNTRIES = new String[] { "Afghanistan","Albania", "Algeria", "American Samoa","Andorra", "Angola", "Anguilla","Antarctica", "Antigua and Barbuda", "Argentina","Armenia", "Aruba"}; 


        public void onCreate(Bundle savedInstanceState){

                super.onCreate(savedInstanceState);
 
                // setContentView(R.layout.main);***在这里不需要这样设置布局文件
                //获取string文件中名为countries_array的string数组里面包含的数据
                String[] countries = getResources().getStringArray(R.array.countries_array);
 
                //把countries里面的数据传给ArrayAdapter再绑定到ListView
                //构建ArrayAdapter时要设置布局文件,布局文件里面必须包含TextView控件

                setListAdapter(new ArrayAdapter<String>(this,R.layout.list_item, countries));
                //setListAdapter(new ArrayAdapter<String>(this, R.layout.list_item, COUNTRIES));


                ListView lv =getListView();//获取布局文件中的ListView
                lv.setTextFilterEnabled(true);


                //当用户点击ListView控件的某行时会触发此事件     
                lv.setOnItemClickListener(new OnItemClickListener()  {
                        public void onItemClick(AdapterView<?> parent, View view, int position, long id){
                                Toast.makeText(getApplicationContext(), ((TextView) view).getText(), Toast.LENGTH_SHORT).show();
                        }
                });
        }
}

////////////用ListView显示String数组里面的数据--over//////////////