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,将警告信息显示出来。

         今天先学习到这,谢谢!

  • 相关阅读:
    http请求类型简介
    关于PLSQL连接报错:ORA-12154:TNS:无法解析指定的连接标识符
    JDK8的安装与配置
    今天新装tomcat遇到黑窗口(startup.bat)启动乱码问题解决!!!
    一个简单的工厂模式(一个接口,多个实现,通过调用条件的不同,分别去调用符合的实现)
    数组(复习)
    java选择结构、循环结构(复习)
    java常用的数据类型,变量和常量,运算符(复习)
    java输入输出,书写规范,运行原理,跨平台原理(复习)
    JAVA基础入门(JDK、eclipse下载安装)
  • 原文地址:https://www.cnblogs.com/xpxpxp2046/p/2014569.html
Copyright © 2011-2022 走看看