ListActivity简单的说就是ListView和Activity的结合,跟ListView和Activity组合实现的没有什么很大的差别,主要是比较方便。
在实现时,要注意:
  • 1、一般情况,ListActivity可以不用setContentView(R.layout.main),它默认是LIstView占满屏。
  • 2、如果想在屏幕中显示其他控件,如文本框和按钮之类,可以采用如下方法:
         2.1、在代码中添加:setContentView(R.layout.main)
         2.2、在 main.xml 文件中,添加一个LIstView控件,和一个 TextView 控件,注意它们 id 必须为"@id/android:list"、"@id/android:empty";前一个表示匹配的ListView,后一个表示若LIstView没有内容则显示的提示。
ListActivity最经典的应用场景

public class MainActivity extends ListActivity {
    private int resource;//布局
    private List<String> mData;//数据
    private ListAdapter mAdapter;//适配器
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        resource = android.R.layout.simple_list_item_1;//最简单的当然是用系统带的布局了
        mData = new ArrayList<String>(Arrays.asList("第一个条目", "第二个条目", "第三个条目", "第四个条目", "第五个条目"));
        mAdapter = new ArrayAdapter<String>(this, resource, mData);
        setListAdapter(mAdapter);
    }
    @Override
    protected void onListItemClick(ListView l, View v, int position, long id) {
        switch (position) {
        }

}

}

ListActivity使用代码设置布局

public class MainActivity extends ListActivity {
    private ArrayList<HashMap<String, Object>> mArrayList; //存放文字、图片信息
    private SimpleAdapter mSimpleAdapter; //简单适配器
    @Override
    public void onCreate(Bundle icicle) {
        super.onCreate(icicle);
        initDatas();
        setListAdapter(mSimpleAdapter);
    }

    private void initDatas() {
        mArrayList = new ArrayList<HashMap<String, Object>>();
        for (int i = 0; i < 5; i++) {
            HashMap<String, Object> map = new HashMap<String, Object>();
            map.put("tv_title", "条目 " + i); //文字
            map.put("iv_icon", R.drawable.ic_launcher); //图片   
            mArrayList.add(map);
        }
        //生成适配器的Item和动态数组对应的元素   
        mSimpleAdapter = new SimpleAdapter(this, mArrayList, R.layout.list_item, //Item的布局
                new String[] { "tv_title", "iv_icon" }, new int[] { R.id.tv_title, R.id.iv_icon });
    }

    @Override
    protected void onListItemClick(ListView l, View v, int position, long id) {
        setTitle("你点击第" + position + "行");
    }

}


list_item.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/LinearLayout01"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:gravity="center_vertical"
    android:orientation="horizontal" >
    <ImageView
        android:id="@+id/iv_icon"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:src="@drawable/ic_launcher" />
    <TextView
        android:id="@+id/tv_title"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:textSize="15sp" />

</LinearLayout>


ListActivity使用XML设置布局

public class MainActivity extends ListActivity implements OnClickListener {

    private Button bt_add;
    private EditText et_item;
    private ArrayList<HashMap<String, Object>> mArrayList; //存放文字、图片信息
    private SimpleAdapter mSimpleAdapter; //简单适配器
    @Override
    public void onCreate(Bundle icicle) {
        super.onCreate(icicle);
        setContentView(R.layout.activity_main);
        bt_add = (Button) findViewById(R.id.bt_add);
        et_item = (EditText) findViewById(R.id.et_item);
        bt_add.setOnClickListener(this);
        initDatas();
    }

    private void initDatas() {
        mArrayList = new ArrayList<HashMap<String, Object>>();
        for (int i = 0; i < 5; i++) {
            HashMap<String, Object> map = new HashMap<String, Object>();
            map.put("tv_title", "条目 " + i); //文字
            map.put("iv_icon", R.drawable.ic_launcher); //图片   
            mArrayList.add(map);
        }
        //生成适配器的Item和动态数组对应的元素   
        mSimpleAdapter = new SimpleAdapter(this, mArrayList, R.layout.list_item, 
                new String[] { "tv_title", "iv_icon" }, new int[] { R.id.tv_title, R.id.iv_icon });
    }

    @Override
    protected void onListItemClick(ListView l, View v, int position, long id) {
        setTitle("你点击第" + position + "行");
    }

    @Override
    public void onClick(View v) {
        // 向ListView里添加数据
        HashMap<String, Object> map = new HashMap<String, Object>();
        String edit_input;
        if (TextUtils.isEmpty(et_item.getText().toString().trim())) edit_input = "你没输入任何内容";
        else edit_input = et_item.getText().toString().trim();
        map.put("tv_title", edit_input);
        map.put("iv_icon", R.drawable.ic_launcher);
        mArrayList.add(map);
        //点击后才(重新)设置适配器
        this.setListAdapter(mSimpleAdapter);
    }

}


   
activity_main.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical" >
    <EditText
        android:id="@+id/et_item"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:gravity="center"
        android:hint="请输入新增条目的标题"
        android:textSize="15sp" >
    </EditText>
    <Button
        android:id="@+id/bt_add"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="点击添加新条目"
        android:textSize="15sp" >
    </Button>
    <ListView
        android:id="@id/android:list"
        android:layout_width="fill_parent"
        android:layout_height="0dip"
        android:layout_weight="1"
        android:drawSelectorOnTop="false" />
    <TextView
        android:id="@id/android:empty"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="这是一个固定id的TextView,当LIstView没有内容时才会显示" />

</LinearLayout>




ListActivity ListView 使用 介绍 用法的更多相关文章

  1. Android listview与adapter用法

    listview与adapter用法 博客分类: android   一个ListView通常有两个职责. (1)将数据填充到布局. (2)处理用户的选择点击等操作. 第一点很好理解,ListView ...

  2. listview与adapter用法

    Android listview与adapter用法 listview与adapter用法 博客分类: android   一个ListView通常有两个职责. (1)将数据填充到布局. (2)处理用 ...

  3. Android listview与adapter用法(BaseAdapter + getView)

    Android listview与adapter用法http://www.cnblogs.com/zhengbeibei/archive/2013/05/14/3078805.html package ...

  4. Android—— ListView 的简单用法及定制ListView界面

    一.ListView的简单用法 2. 训练目标 1) 掌握 ListView 控件的使用 2) 掌握 Adapter 桥梁的作用 实现步骤: 1)首先新建一个项目, 并让ADT 自动帮我们创建好活动. ...

  5. Android之ListView——ArrayAdapter的用法学习

    当我们使用ListView时,必不可少的便会使用到adapter,adapter的用处就像是一个水管接口,把你想展现的数据与你希望展现的布局样式通过某种协定结合起来. ArrayAdapter针对每个 ...

  6. android的listview的详细用法

    listview是android开发中的一个极其重要的控件.所以,要学会android,如果这个不会,基本是不会android的. 这里按照几个步骤介绍这个控件的使用. 1. 使用API中ArrayA ...

  7. ListView 和 Adapter用法

    一个ListView通常有两个职责. (1)将数据填充到布局. (2)处理用户的选择点击等操作. 第一点很好理解,ListView就是实现这个功能的.第二点也不难做到,在后面的学习中读者会发现,这非常 ...

  8. 对于ListView的一些用法(一)

    ScrollView:只能用于控件比较少的界面,如果数据有上千上万条,那么使用ScrollView就不好了,因为ScrollView就把所有的控件进行初始化,这是非常消耗性能的操作,所以android ...

  9. 【转】Android listview与adapter用法

    一个ListView通常有两个职责. (1)将数据填充到布局. (2)处理用户的选择点击等操作. 第一点很好理解,ListView就是实现这个功能的.第二点也不难做到,在后面的学习中读者会发现,这非常 ...

随机推荐

  1. python正则表达式入门

    基本概念 使用正则表达式需要import re 表达式前加r避免转义 \d代表数字,\s代表空白字符,\w代表字母+数字. .代表任意单个字符 {m,n}代表前面字符至少出现m次,最多出现n次. (x ...

  2. 『重构--改善既有代码的设计』读书笔记----Split Temporary Variable

    继续开始我们重构手法的系列,今天介绍的是Split Temporary Variable---分解临时变量. 在我们平常写的程序中肯定有某些临时变量被赋予了超过一个的责任.如果他们不是那种收集结果(t ...

  3. Phalcon 的分流bootstrap 设计 主程序入口

    <?php use \Phalcon\DI\FactoryDefault as PhDi; error_reporting(E_ALL); date_default_timezone_set(' ...

  4. CodeForces 474B(标记用法)

    CodeForces 474B Time Limit:1000MS Memory Limit:262144KB   64bit IO Format:%I64d & %I64u Descript ...

  5. JVM笔记-temp

    jvm源码分析之堆外内存完全解读 http://lovestblog.cn/blog/2015/05/12/direct-buffer/

  6. 配置linux平台下基于vim的开发环境

    一.vim的基本配置 1.配置文件的位置在目录 /etc/ 下面,有个名为vimrc的文件,这是系统中公共的vim配置文件,对所有用户都有效.而在每个用户的主目录($HOME)下,都可以自己建立私有的 ...

  7. JQ之路——layer第三方弹窗

    layer官网 <script src="http://libs.baidu.com/jquery/1.9.1/jquery.min.js"></script&g ...

  8. 转:精心挑选的12款优秀 jQuery Ajax 分页插件和教程

    在这篇文章中,我为大家收集了12个基于 jQuery 框架的 Ajax 分页插件,这些插件都提供了详细的使用教程和演示.Ajax 技术的出现使得 Web 项目的用户体验有了极大的提高,如今借助优秀的  ...

  9. linq 的Distinct 扩展方法.

    List<miniclass> classs = new List<miniclass>(); classs.Add(new miniclass() { token = &qu ...

  10. 理解 Javascript 的闭包

    什么是闭包 闭包是什么?闭包是Closure,这是静态语言所不具有的一个新特性.但是闭包也不是什么复杂到不可理解的东西,简而言之,闭包就是: 闭包就是函数的局部变量集合,只是这些局部变量在函数返回后会 ...