Android调用创建好的的列表,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 arrayAdapter1 = new ArrayAdapter<>(this, R.layout.array_lang, array1);

setListAdapter(arrayAdapter1);

}

}

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

18961592c3c4

20170227215236

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

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 arrayAdapter1 = new ArrayAdapter<>(this, R.layout.array_lang, array1);

setListAdapter(arrayAdapter1);

}

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

18961592c3c4

20170227215601

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值