zoukankan      html  css  js  c++  java
  • 列表ListView和ListActivity以及使用SimpleAdapter

    创建listview有2种方式

    1>直接使用ListView进行创建

    2>让Activity继承ListActivity

    下面是listview常用的一些属性

    案例:

    public class MainActivity extends Activity {
    
        @Override
        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.list);
    
            ListView lv = (ListView) findViewById(R.id.lv);
    
            String[] names = new String[]{ "张三", "李四", "wangwu", "赵六" };
            lv.setAdapter(new ArrayAdapter<String>(this,
                    android.R.layout.simple_expandable_list_item_1, names));
        }
    
    }

    <ListView
            android:id="@+id/lv"
            android:layout_width="match_parent"
            android:layout_height="wrap_content" >
        </ListView>

    这里使用ArrayAdapter指定了一个textViewResourceId,它代表listview中每个item的外观形式

    基于ListActivity实现的列表

    如果一个窗口仅仅要显示一个列表,可以直接让activity继承ListActivity,并且无需调用setContentView()来指定某个界面,而是通过传入一个Adapter显示列表信息

    也就是说它可以没有布局文件

    public class MainActivity2 extends ListActivity {
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
    
            String[] names = new String[] { "张三", "李四", "wangwu", "赵六" };
            ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,
                    android.R.layout.simple_list_item_multiple_choice, names);
            setListAdapter(adapter);
        }
    }

    当然也可以给他指定一个布局setContentView(R.layout.xxx),但是listview属性必须指定一个id:  android:id="@+id/android:list"; 否则运行报错

    使用SimpleAdapter创建ListVIew

    public class MainActivity extends Activity {
        @Override
        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.list);
    
            ListView lv = (ListView) findViewById(R.id.lv);
    
            String[] names = new String[] { "张三", "李四", "wangwu", "赵六" };
            List<Map<String, Object>> data = new ArrayList<Map<String, Object>>();
            for (int i = 0; i < names.length; i++) {
                Map<String, Object> hashMap = new HashMap<String, Object>();
                hashMap.put("name", names[i]);
                data.add(hashMap);
            }
    
            lv.setAdapter(new SimpleAdapter(this, data, R.layout.list,
                    new String[] { "name" }, new int[] {R.id.tv}));
        }
    
    }


    xml

    <TextView
            android:id="@+id/tv"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content" />
    
        <ListView
            android:id="@+id/lv"
            android:layout_width="match_parent"
            android:layout_height="wrap_content" >
        </ListView>
  • 相关阅读:
    包管理器Bower使用手冊之中的一个
    开机就提示“请安装TCP/IP协议,error=10106”的解决的方法
    Apache Thrift的简单使用
    Python机器学习实战&lt;一&gt;:环境的配置
    数据库期末考试复习题 第二�
    数据集成之主数据管理(一)基础概念篇
    Cocos2d-x开发中C++内存管理
    html中#include file的使用方法
    网页的背景图片代码
    TEST
  • 原文地址:https://www.cnblogs.com/android-zcq/p/3140575.html
Copyright © 2011-2022 走看看