ListActivity
ListActivity类继承Activity类,默认绑定了一个ListView(列表视图)界面组件,xml布局中,ListView标签id必须写成android:id="@+id/android:list"并提供一些与列表视图、处理相关的操作。ListView界面组件中的每一行(row)都可以被选择。我们可以借由设置一个onListItemClick函数,来得到用户正选择了哪一列的信息,并做后续处理。列表视图在手持设备上运用很多,诸如在手机屏幕上显示通信录列表或电话列表,并让用户从中选择的动作,都属于ListActivity管理范围。开发者在开发常用的列表视图画面时,直接使用ListActivity类来开始,会比从Activity类来开始方便许多。自带适配器无需再定义setListAdapter
ArrayAdapter(Context context, int resource, int textViewResourceId, List<T> objects)
第一个参数是上下文,一般为this,第二个参数是自定义的布局文件,第三个参数是布局中用来显示文字的TextView的id,用来确定把添加进来的数据显示在哪个位置,第四个参数是数据集合。
1.<?xml version="1.0" encoding="utf-8"?>
2.<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
3. android:orientation="vertical"
4. android:layout_width="match_parent"
5. android:layout_height="match_parent">
6.
7. <TextView
8. android:id="@+id/tv_title"
9. android:layout_width="match_parent"
10. android:layout_height="wrap_content" />
11.
12.</LinearLayout>
1.public class MainActivity extends AppCompatActivity {
2.
3. ArrayList<String> dataList;
4.
5. @Override
6. protected void onCreate(Bundle savedInstanceState) {
7. super.onCreate(savedInstanceState);
8. setContentView(R.layout.activity_main);
9. //找控件
10. ListView listView=(ListView) findViewById(R.id.listView);
11. //展示数据——数据适配器
12. //resource 资源文件————要展示的布局效果
13. //textViewResourceId textView 的id
14. //objects 集合或者数据
15.
16. ArrayAdapter<String> adapter=new ArrayAdapter<String>(this,R.layout.lv_list,R.id.tv_title,dataList);
17. listView.setAdapter(adapter);
18.
19. }
20. private void initData(){
21. dataList=new ArrayList<String>(); //创建ArrayList 动态数组 dataList
22. for(int i=0;i<20;i++){
23. dataList.add("我是第"+i+"条目");
补充:
官方提供了多种ListItem的Layout (R.layout),以下是较为常用的,更多的请查看API DOC的R.layout http://androidappdocs.appspot.com/reference/android/R.layout.html:
◾android.R.layout.simple_list_item_1 一行text
◾android.R.layout.simple_list_item_2 一行title,一行text
◾android.R.layout.simple_list_item_single_choice 单选按钮
◾android.R.layout.simple_list_item_multiple_choice 多选按钮
◾android.R.layout.simple_list_item_checked checkbox