查看: 796|回复: 0

android中的列表组件ListView

[复制链接]
  • TA的每日心情
    无聊
    2017-4-17 15:52
  • 签到天数: 107 天

    连续签到: 1 天

    [LV.6]常住居民II

    发表于 2015-6-15 21:01:13 | 显示全部楼层 |阅读模式
    利用Android自带的List格式
    步骤一:Android XML文件
    ListActivity是一个全屏的list,如果我们需要定制layout,例如加上一个button之类的什么的,我们需将ListView的id设置为“@android:id/list”,我们可以同getListView来获取ListView的对象,下面是XML的例子:
    1. <LinearLayout xmlns:android="<a >http://schemas.android.com/apk/res/android</a>"
    2.     xmlns:tools="<a >http://schemas.android.com/tools</a>"
    3.     android:orientation="vertical"
    4.     android:layout_width="fill_parent"
    5.     android:layout_height="fill_parent" >
    6.     <ListView android:id="@android:id/list"  
    7.     android:layout_width="fill_parent"
    8.     android:layout_height="fill_parent"
    9.     android:drawSelectorOnTop="false" />
    10. </LinearLayout>
    复制代码
    步骤二:源代码
    1)使用String数组设置List的item内容
    例如:String[] items={"One", "Two", "Three", "Four", "Five"};
    2)在onCreate中将item的内容加入,使用setListAdapter并设置List的格式
    setListAdapter(new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1,items));
    ArrayAdapter有三个参数,第一是对象,第二是List的格式,第三个是List的内容。对于格式这个例子采用了Android自定义的几种格式,后面会具体列出。android.R.layout.simple_list_item_1是TextView的方式,采用big font,是最为常见的方式。
    3)点击List的Callback方法
    由于集成了ListActivity,可以直接使用回调函数onListItemClick
    4)例子
    1. public class BeginingBook extends ListActivity {
    2.     String[] items={"One","Two","Three","Four","Five","Six","Serven"};
    3.     private Button button;
    4.     /** Called when the activity is first created. */
    5.     @Override
    6.     public void onCreate(Bundle savedInstanceState) {
    7.         super.onCreate(savedInstanceState);
    8.         setContentView(R.layout.main);
    9.         setListAdapter(new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1,items));
    10.         button =(Button)findViewById(R.id.chapter7);
    11.     }
    12.     public void onListItemClick(ListView parent,View v, int position, long id){
    13.         button.setText(items[position]); //position是点击的item的序号,从0开始。
    14.     }
    15. }
    复制代码
    5)不同的呈现模式
    我们修改ArrayAdapter的第二个显示的模式。另外可以通过getListView()获取ListView的对象
    设置ListView的一些属性,ListView的一些常用方法:
    setChoiceMode(),
    getCheckedItemPositions() 。
    1. setListAdapter(new ArrayAdapter<String>(this, android.R.layout.simple_list_item_single_choice,items));
    2. getListView().setChoiceMode(ListView.CHOICE_MODE_SINGLE); //表明有选项,如果不设置,缺省为none,即我们点击后仍无反应
    3. setListAdapter(new ArrayAdapter<String>(this, android.R.layout.simple_list_item_multiple_choice ,items));
    4. getListView().setChoiceMode(ListView.CHOICE_MODE_MULTIPLE); //注意,只要点击就会触发Callback,而不过是的点击后选上还是变为取消。
    5. setListAdapter(new ArrayAdapter<String>(this, android.R.layout.simple_list_item_checked,items));
    6. getListView().setChoiceMode(ListView.CHOICE_MODE_MULTIPLE);
    复制代码
    下面,第一个图为android.R.layout.simple_list_item_1,接着依次为上面三种格式。

    0_1300351173W8xZ.gif


    您需要登录后才可以回帖 登录 | 注册

    本版积分规则

    站长推荐上一条 /1 下一条