zoukankan      html  css  js  c++  java
  • ListView

    package com.eoeAndroid.list;
    
    import java.util.ArrayList;
    import java.util.HashMap;
    import java.util.List;
    import java.util.Map;
    
    import android.app.Activity;
    import android.os.Bundle;
    import android.view.View;
    import android.widget.AdapterView;
    import android.widget.ListView;
    import android.widget.SimpleAdapter;
    import android.widget.AdapterView.OnItemClickListener;
    
    public class ActivityList2 extends Activity {
    
        private List<Map<String, Object>> data;
        private ListView listView = null;
    
        @Override
        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            PrepareData();
            listView = new ListView(this);
            // 利用系统的layout显示一项
    //         SimpleAdapter adapter = new SimpleAdapter(this, data,
    //         android.R.layout.simple_list_item_1, new String[] { "姓名" },
    //         new int[] { android.R.id.text1 });
            // 利用系统的layout显示两项
             SimpleAdapter adapter = new SimpleAdapter(this, data,
             android.R.layout.simple_list_item_2, new String[] { "姓名","性别" },
             new int[] { android.R.id.text1 , android.R.id.text2});
            // 利用自己的layout来进行显示两项
    //        SimpleAdapter adapter = new SimpleAdapter(this, data,
    //        R.layout.list_item, new String[] { "姓名", "性别" }, new int[] {
    //        R.id.mview1, R.id.mview2 });
            listView.setAdapter(adapter);
            setContentView(listView);    
            
            OnItemClickListener listener = new OnItemClickListener() {
                public void onItemClick(AdapterView<?> parent, View view, int position,
                        long id) {
                    setTitle(parent.getItemAtPosition(position).toString());
                }
            };
            listView.setOnItemClickListener(listener);
        }
    
        private void PrepareData() {
            data = new ArrayList<Map<String, Object>>();
            Map<String, Object> item;
            item = new HashMap<String, Object>();
            item.put("姓名", "张三小朋友");
            item.put("性别", "男");
            data.add(item);
            item = new HashMap<String, Object>();
            item.put("姓名", "王五同学");
            item.put("性别", "男");
            data.add(item);
            item = new HashMap<String, Object>();
            item.put("姓名", "小李师傅");
            item.put("性别", "女");
            data.add(item);
        }
    }
    

    本次学习需要注意的地方:

    1 需要为ListView添加适配器。listView.setAdapter(adapter);

    2 适配器有多种,本例中使用的是SimpleAdapter。 

       第一种:listView.setAdapter(new ArrayAdapter<String>(this,
      android.R.layout.simple_list_item_single_choice, data));

       第二种:SimpleAdapter adapter = new SimpleAdapter(this, data,
             android.R.layout.simple_list_item_2, 
    new String[] { "姓名","性别" },
             
    new int[] { android.R.id.text1 , android.R.id.text2});

    3 SimpleAdapter在初始化过程中,可以通过修改参数来设置不同的显示方式。上述代码中,就列举了三种显示方式。

    4 下一步需要关注的就是监听函数。针对功能不同,有不同的监听函数。

       第一种:OnItemClickListener listener;    //单击Item时调用

       public void onItemClick(AdapterView<?> parent, View view, int position, long id) {

                setTitle(parent.getItemAtPosition(position).toString());
       }

       第二种:OnItemSelectedListener itemSelectedListener;     //选中Item时调用

       public void onItemSelected(AdapterView<?> parent, View arg1,
         int position, long arg3) {
        setTitle("您选中的软件是:  "+parent.getItemAtPosition(position).toString());
       }

    5  XML的布局问题

    <?xml version="1.0" encoding="utf-8"?>
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
          android:layout_width="wrap_content"
        android:layout_height="wrap_content">
        <ListView android:id="@id/android:list"
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"/>
          <TextView android:id="@id/android:empty"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="对不起,没有数据显示"/>      
    </LinearLayout>
    

    需要注意的是,ListView的id,使用的是"@id/android:list",即系统默认的id,而紧接其后的TextView,使用的id也是系统默认的,即"@id/android:empty"。所以当ListView为空时,系统会自动调用下面的TextView,将警告信息显示出来。

         今天先学习到这,谢谢!

  • 相关阅读:
    Notes of Daily Scrum Meeting(12.18)
    Notes of Daily Scrum Meeting(12.17)
    Notes of Daily Scrum Meeting(12.16)
    Notes of Daily Scrum Meeting(12.8)
    Notes of Daily Scrum Meeting(12.5)
    Notes of Daily Scrum Meeting(12.3)
    Notes of Daily Scrum Meeting(11.12)
    Linux中profile、bashrc、bash_profile之间的区别和联系
    Linux GCC编译
    mysql 5.7.16 远程连接
  • 原文地址:https://www.cnblogs.com/xpxpxp2046/p/2014569.html
Copyright © 2011-2022 走看看