采得百花成蜜后,为谁辛苦为谁甜。这篇文章主要讲述Android-ListView-ArrayAdapter相关的知识,希望能为你提供帮助。
我在上一篇博客中Android-动态添加控件到ScrollView,写到可以用java动态添加控件到Scrollview的孩子LinearLayout里面去,这种方式是不合理的,因为这种方式是一次性把数据全部加载完成了
在android中就提供了专门列表显示条目的控件,ListView控件,ListView控件不是一次性加载全部数据,他是只加载用户在屏幕看得到的数据,当用户滑动的过程中在去加载新的数据,同时会自动销毁之前加载过的数据
什么时候使用ListView ?
答:当很多条目Item,显示都内容不同,数据不同,但是存放的位置是相似的,并且动态变化的条目Item(和数据),就可以用ListView
ListView的使用:
1.在布局中定义ListVIew
< ?xml version="1.0" encoding="utf-8"?> < RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent"> < !-- 定义ListView --> < ListView android:id="@+id/listview" android:layout_width="match_parent" android:layout_height="wrap_content"> < /ListView> < /RelativeLayout>
2.在Java代码中找到ListVIew,再设置适配器 setAdapter(ListAdapter的子类)
ArrayAdapter适配器是数组适配器,只能去适配展示很简单的格局,只能展示条目Item的一个控件
ListAdapter是ArrayAdapter的父类:
文章图片
使用ArrayAdapter适配器:有四个参数:
第一个参数:上下文
【Android-ListView-ArrayAdapter】第二个参数:Item条目用到的布局文件
第三个参数:Item条目用到的布局文件里面控件的ID
第四个参数:数据
文章图片
ListVIew + ArrayAdapter:
这里的第二个参数和第三个参数是使用了系统的 布局文件+布局文件里面的控件ID
package liudeli.ui.all; import android.app.Activity; import android.os.Bundle; import android.widget.ArrayAdapter; import android.widget.ListAdapter; import android.widget.ListView; import java.util.ArrayList; import java.util.List; public class ListViewActivity extends Activity {@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_listview); ListView listView = findViewById(R.id.listview); // 组装数据 List< String> list = new ArrayList< > (); for (int i=0; i< 60; i++) { list.add("我是ListView的Item条目 下标:" + i); }// 使用ArrayAdapter适配器 ListAdapter listAdapter = new ArrayAdapter< String> (this, android.R.layout.simple_list_item_1, android.R.id.text1, list); // 把适配器给ListView listView.setAdapter(listAdapter); }@Override protected void onDestroy() { super.onDestroy(); } }
展示:
文章图片
推荐阅读
- appium1.4?????????????????????appium???????????????unlock,setting?????????????????????
- ??????k?????????|??????k???app??????
- cordava打包vue项目成app
- 安卓端数据导出成txt文件
- android踩坑记录之view.setVisiblity()
- AVIER Racing Drone App Privacy Policy
- 如何理解太极链DAPP
- android stdio 编译项目报Error:Failed to find target with hash string 'android-24
- .net core 2.0 虚拟目录下载 Android Apk 等文件