ListView的两种使用方法1.继承ListActivity2.自己定义ListView
16lz
2021-01-26
使用ListView和arrayAdapter布局,是ListView布局中最为简单的一种,首先我们会建立一个组件用来显示数据,例如main.xml
[c-sharp] view plain copy print ?
- <?xmlversion="1.0"encoding="utf-8"?>
- <!--主界面本身就是一个显示组件-->
- <TextViewxmlns:android="http://schemas.android.com/apk/res/android"
- android:layout_width="fill_parent"
- android:layout_height="fill_parent"
- android:padding="10dp"
- android:textSize="16sp"
- >
- </TextView>
Activity代码如下
[java:nogutter] view plain copy print ?
- packagecn.com.android.grid;
- importandroid.app.ListActivity;
- importandroid.os.Bundle;
- importandroid.widget.ArrayAdapter;
- publicclasslistViewTestextendsListActivity{
- @Override
- protectedvoidonCreate(BundlesavedInstanceState){
- super.onCreate(savedInstanceState);
- Stringdata[]=getData();
- ArrayAdapter<String>arrayAdapter=newArrayAdapter<String>(this,R.layout.main,data);
- this.setListAdapter(arrayAdapter);//ArrayAdapter继承自baseAdapter,baseAdapter又继承自ListAdapter
- }
- /**
- *@authorchenzheng_java
- *@description获取一个数组列表
- */
- privateString[]getData(){
- String[]data=newString[100];
- for(inti=0;i<100;i++){
- data[i]="列表项"+i;
- }
- returndata;
- }
- }
如果这里activity不想继承ListActivity,那么我们可以这样编写
[java:nogutter] view plain copy print ?
- packagecn.com.android.grid;
- importandroid.app.Activity;
- importandroid.os.Bundle;
- importandroid.widget.ArrayAdapter;
- importandroid.widget.ListView;
- publicclassListViewTest2extendsActivity{
- @Override
- protectedvoidonCreate(BundlesavedInstanceState){
- super.onCreate(savedInstanceState);
- ListViewlistView=newListView(this);
- listView.setAdapter(newArrayAdapter<String>(this,R.layout.main,getData()));
- setContentView(listView);
- }
- /**
- *@authorchenzheng_java
- *@description获取一个数组列表
- */
- privateString[]getData(){
- String[]data=newString[100];
- for(inti=0;i<100;i++){
- data[i]="列表项"+i;
- }
- returndata;
- }
- }
废话连篇:
两种实现办法写的代码差距很大,有很多初学者可能很晕。不过不要紧,我们一起看下ListActivity到底是怎么实现的。
代码摘录如下
[java] view plain copy print ?
- publicclassListActivityextendsActivity{
- /**
- *Thisfieldshouldbemadeprivate,soitishiddenfromtheSDK.
- *{@hide}
- */
- protectedListAdaptermAdapter;
- /**
- *Thisfieldshouldbemadeprivate,soitishiddenfromtheSDK.
- *{@hide}
- */
- protectedListViewmList;
我们看到了,实际上当我们继承ListActivity时,实际上里面已经有一个从ListActivity中继承的listview了,所以千万别以为差距很大,本质上,实现的步骤是一摸一样的。你可以认为,android给你提供了一个免费的工具类。没什么稀奇的。
步骤上,还是三大步:
第一步:准备布局文件main.xml
第二步:获取数据 getData()
第三步:绑定数据源setListAdapter();
更多相关文章
- Android继承ViewGroup自定义流式布局
- 错误集录
- android studio 中实现android全屏 AppCompat does not support
- GridView 控件和Gallery 控件
- Applying Styles and Themes - 应用Style和Theme - Android官方
- Android(安卓)ListView用EditText实现搜索功能效果
- Android~Unable to get provider androidx.lifecycle.ProcessLif
- Android百度地图定位收索取周边在列表中展示并选择
- Android(安卓)Gson深入分析