加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

ListView

发布时间:2020-12-16 05:58:14 所属栏目:百科 来源:网络整理
导读:— ListView:以列表的方式来显示数据内容,这些内容来自于 ListAdapter 。 让ListView显示在最上层: myListView.bringToFront(); xml中 ListView的属性 1、android:listSelector="@drawable/ drawable _list_item" : 当前item高亮时,显示此 drawable _li
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,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//////////////

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读