android ListView 示例3 使用 ListActivity 创建 ListView

如果程序的窗口仅仅需要显示一个列表,则可以直接让Activity集成ListActivity来实现,ListActivity的子类无须调用setContentView方法来显示某个界面,而是可以直接传入一个内容Adapter,ListActivity的子类就呈现出一个列表。
例如,将使用示例2的例子修改一下,如下:

package com.toby.personal.testlistview;

import android.app.ListActivity;
import android.os.Bundle;
import android.widget.ArrayAdapter;

public class MainActivity extends ListActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        String[] array1 = {"C", "C++", "Qt", "QML"};
        ArrayAdapter<String> arrayAdapter1 = new ArrayAdapter<>(this, R.layout.array_lang, array1);
        setListAdapter(arrayAdapter1);
    }
}

上面程序的Activity继承了ListActivity,ListActivity无须界面布局文件。运行效果如下:


20170227215236

我们还可以在onCreate方法中使用setContentView方法设置自定义布局。但是这时需要在布局文件中指定一个id为“@+id/android:list”(如果是代码形式,则是android.R.id.list)的ListView。例如,我们自定义名为my_list_view的ListView如下:

<?xml version="1.0" encoding="utf-8"?>
<ListView android:id="@+id/android:list"
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@color/colorPrimaryDark"
    android:layout_weight="1"
    android:drawSelectorOnTop="false"
    />

然后在onCreate方法中使用setContentView方法,设置my_list_view的自定义布局文件:

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        setContentView(R.layout.my_list_view);

        String[] array1 = {"C", "C++", "Qt", "QML"};
        ArrayAdapter<String> arrayAdapter1 = new ArrayAdapter<>(this, R.layout.array_lang, array1);
        setListAdapter(arrayAdapter1);
    }

上述自定义的ListView的运行效果如果:


20170227215601

参考文献:《疯狂Android讲义(第2版)》

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 176,067评论 25 709
  • ¥开启¥ 【iAPP实现进入界面执行逐一显】 〖2017-08-25 15:22:14〗 《//首先开一个线程,因...
    小菜c阅读 11,860评论 0 17
  • 哎呀呀 ,马上就要面临找工作了,媛媛心里紧张呀. 作为一个即将毕业的Android程序媛,开始面临找工作了,...
    左神话阅读 10,404评论 7 59
  • 我疯了一样 向往自由 最后 尸体献给 出生的朝阳。
    黑犬喜喜哥欠阅读 1,634评论 3 3
  • 下面是培臻教育小编为大家整理的一篇关于BMAT考试练习题20的文章,供大家参考,下面是详细内容。 BMAT考试练习...
    peizhenjy阅读 1,373评论 0 0

友情链接更多精彩内容