生也有涯,知也无涯。这篇文章主要讲述android-ListView空间的使用相关的知识,希望能为你提供帮助。
一、深刻理解ListView
二、熟练使用两种适配器:ArrayAdapter、SimpleAdapter
数据适配器作用:
将复杂的数据填充在指定界面上(数组、集合、链表、数据库...),即连接数据源和视图界面的桥梁。
(1)数组适配器:ArrayAdapter
用于绑定格式单一的数据(数据源:数组、集合);
(2)简单适配器:SimpleAadpter
用于绑定格式复杂的数据(数据源:只能是特定泛型的集合);
实现过程:新建适配器、添加数据源到适配器、视图加载适配器;
MainActivity文件:
package com.example.mylistview;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import android.support.v7.app.ActionBarActivity;
import android.os.Bundle;
import android.widget.ListView;
import android.widget.SimpleAdapter;
public class MainActivity extends ActionBarActivity {
private ListView listView;
//private ArrayAdapter<
String>
arr_adapter;
private SimpleAdapter simp_adapter;
private List<
Map<
String,Object>
>
dataList;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_menu);
listView=(ListView) findViewById(R.id.listView);
/*
* 数组适配器:
* 0、生成一个数据源
* 1、新建一个适配器并加载数据源
*
数组适配器三个参数:
*
上下文、当前ListView加载的列表项所对应的布局文件、数据源
* 2、使用视图加载适配器
*
* */
//String []arr_data=https://www.songbingjia.com/android/{"马轩","选吗","马车","活吗","龙马","天马","赵称","赵晨","真唱","注册","向日葵","徐荣凯","谢荣康"};
//arr_adapter=new ArrayAdapter<
String>
(this, android.R.layout.simple_list_item_1, arr_data);
//listView.setAdapter(arr_adapter);
/*
* 简单适配器:
*
参数:上下文
*
*
数据源List<
? extends Map<
String,?>
>
一个map所组成的list集合,
*
每一个map对应listView列表中的一行
*
每一个Map中的键必须包含所有在from中所指定的键
*
*
列表项的布局文件
*
*
记录map中的键名
*
*
绑定数据视图中的id,与from对应
* */
dataList=new ArrayList<
Map<
String,Object>
>
();
simp_adapter=new SimpleAdapter(this, this.getData(), R.layout.activity_menusimp, new String[]{"pic","text"}, new int[]{R.id.pic,R.id.text});
listView.setAdapter(simp_adapter);
}
private List<
Map<
String,Object>
>
getData(){
for (int i = 0;
i <
20;
i++) {
Map<
String,Object>
map=new HashMap<
String, Object>
();
map.put("pic", R.drawable.ic_logo);
map.put("text", "谢荣康");
dataList.add(map);
}
return dataList;
}
}
activity_menu.xml文件:
<
?xml version="1.0" encoding="utf-8"?>
<
LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<
ListView
android:id="@+id/listView"
android:layout_width="match_parent"
android:layout_height="wrap_content" >
<
/ListView>
<
/LinearLayout>
activity_menusimp.xml文件
<
?xml version="1.0" encoding="utf-8"?>
<
LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="horizontal" >
<
ImageView
android:id="@+id/pic"
android:layout_width="86dp"
android:layout_height="100dp"
android:layout_marginLeft="15dp"
android:src="https://www.songbingjia.com/android/@drawable/ic_logo" />
<
TextView
android:id="@+id/text"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="demo"
android:textColor="#000000"
android:textSize="20sp" />
<
/LinearLayout>
【android-ListView空间的使用】三、熟练运用两种监听器:OnScrollListener、OnItemClickListener
推荐阅读
- Android平板上开发应用的一点心得——精确适配不同的dpi和屏幕尺寸
- Android 图片缩放
- Win10安卓模拟器Visual Studio Emulator for Android使用简介(转)
- Adb connect监听指定的主机和端口/Adb监听Visual Studio Emulator for Android模拟器
- Android应用性能优化之使用SparseArray替代HashMap
- Android 设置图片 Bitmap任意透明度
- Android 手机卫士--选中SettingItemView条目状态切换
- Android开发实践android.view.InflateException: Binary XML file line #12: Error inflating class fragment
- Android的数据的存储方式