使用ListView和arrayAdapter布局,是ListView布局中最为简单的一种,首先我们会建立一个组件用来显示数据,例如main.xml

[c-sharp] view plain copy print ?
  1. <?xmlversion="1.0"encoding="utf-8"?>
  2. <!--主界面本身就是一个显示组件-->
  3. <TextViewxmlns:android="http://schemas.android.com/apk/res/android"
  4. android:layout_width="fill_parent"
  5. android:layout_height="fill_parent"
  6. android:padding="10dp"
  7. android:textSize="16sp"
  8. >
  9. </TextView>
<?xml version="1.0" encoding="utf-8"?> <!-- 主界面本身就是一个显示组件 --> <TextView xmlns: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 ?
  1. packagecn.com.android.grid;
  2. importandroid.app.ListActivity;
  3. importandroid.os.Bundle;
  4. importandroid.widget.ArrayAdapter;
  5. publicclasslistViewTestextendsListActivity{
  6. @Override
  7. protectedvoidonCreate(BundlesavedInstanceState){
  8. super.onCreate(savedInstanceState);
  9. Stringdata[]=getData();
  10. ArrayAdapter<String>arrayAdapter=newArrayAdapter<String>(this,R.layout.main,data);
  11. this.setListAdapter(arrayAdapter);//ArrayAdapter继承自baseAdapter,baseAdapter又继承自ListAdapter
  12. }
  13. /**
  14. *@authorchenzheng_java
  15. *@description获取一个数组列表
  16. */
  17. privateString[]getData(){
  18. String[]data=newString[100];
  19. for(inti=0;i<100;i++){
  20. data[i]="列表项"+i;
  21. }
  22. returndata;
  23. }
  24. }
package cn.com.android.grid; import android.app.ListActivity; import android.os.Bundle; import android.widget.ArrayAdapter; public class listViewTest extends ListActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); String data[] = getData(); ArrayAdapter<String> arrayAdapter = new ArrayAdapter<String>(this, R.layout.main, data); this.setListAdapter(arrayAdapter);// ArrayAdapter 继承自baseAdapter,baseAdapter又继承自ListAdapter } /** * @author chenzheng_java * @description 获取一个数组列表 */ private String[] getData(){ String[] data = new String[100]; for (int i = 0; i < 100; i++) { data[i] = "列表项" + i; } return data; } }

如果这里activity不想继承ListActivity,那么我们可以这样编写

[java:nogutter] view plain copy print ?
  1. packagecn.com.android.grid;
  2. importandroid.app.Activity;
  3. importandroid.os.Bundle;
  4. importandroid.widget.ArrayAdapter;
  5. importandroid.widget.ListView;
  6. publicclassListViewTest2extendsActivity{
  7. @Override
  8. protectedvoidonCreate(BundlesavedInstanceState){
  9. super.onCreate(savedInstanceState);
  10. ListViewlistView=newListView(this);
  11. listView.setAdapter(newArrayAdapter<String>(this,R.layout.main,getData()));
  12. setContentView(listView);
  13. }
  14. /**
  15. *@authorchenzheng_java
  16. *@description获取一个数组列表
  17. */
  18. privateString[]getData(){
  19. String[]data=newString[100];
  20. for(inti=0;i<100;i++){
  21. data[i]="列表项"+i;
  22. }
  23. returndata;
  24. }
  25. }
package cn.com.android.grid; import android.app.Activity; import android.os.Bundle; import android.widget.ArrayAdapter; import android.widget.ListView; public class ListViewTest2 extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); ListView listView = new ListView(this); listView.setAdapter(new ArrayAdapter<String>(this,R.layout.main,getData())); setContentView(listView); } /** * @author chenzheng_java * @description 获取一个数组列表 */ private String[] getData(){ String[] data = new String[100]; for (int i = 0; i < 100; i++) { data[i] = "列表项" + i; } return data; } }

废话连篇:

两种实现办法写的代码差距很大,有很多初学者可能很晕。不过不要紧,我们一起看下ListActivity到底是怎么实现的。

代码摘录如下

[java] view plain copy print ?
  1. publicclassListActivityextendsActivity{
  2. /**
  3. *Thisfieldshouldbemadeprivate,soitishiddenfromtheSDK.
  4. *{@hide}
  5. */
  6. protectedListAdaptermAdapter;
  7. /**
  8. *Thisfieldshouldbemadeprivate,soitishiddenfromtheSDK.
  9. *{@hide}
  10. */
  11. protectedListViewmList;
public class ListActivity extends Activity { /** * This field should be made private, so it is hidden from the SDK. * {@hide} */ protected ListAdapter mAdapter; /** * This field should be made private, so it is hidden from the SDK. * {@hide} */ protected ListView mList;

我们看到了,实际上当我们继承ListActivity时,实际上里面已经有一个从ListActivity中继承的listview了,所以千万别以为差距很大,本质上,实现的步骤是一摸一样的。你可以认为,android给你提供了一个免费的工具类。没什么稀奇的。

步骤上,还是三大步:

第一步:准备布局文件main.xml

第二步:获取数据 getData()

第三步:绑定数据源setListAdapter();

更多相关文章

  1. Android继承ViewGroup自定义流式布局
  2. 错误集录
  3. android studio 中实现android全屏 AppCompat does not support
  4. GridView 控件和Gallery 控件
  5. Applying Styles and Themes - 应用Style和Theme - Android官方
  6. Android(安卓)ListView用EditText实现搜索功能效果
  7. Android~Unable to get provider androidx.lifecycle.ProcessLif
  8. Android百度地图定位收索取周边在列表中展示并选择
  9. Android(安卓)Gson深入分析

随机推荐

  1. 也谈layout_gravity和gravity
  2. Android(安卓)图表应用 解决方案
  3. docker-registry 私有仓库镜像 之 查看与
  4. 第一天作业
  5. 2022年PHP学习课程表-表格与图文列表
  6. 关于图片列表和课程表html写法
  7. 列表UL\OL\DL基本用法及表格Table基本
  8. HTML表格的实际应用
  9. 图文列表导航组件以及表格制作
  10. html的无序列表组合图片链接的使用方法