ListView 列表视图,基本属性及简单适配器
ListView 的结构,行布局item.xml,ListView代码
ListView主要的常用属性,
一般就是这样写。当布局不全是一种的时候,我们在item行布局里面还需要在里面编写好其他布局,添加ListView标签(xml),如以下代码
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="match_parent"
android:background="@drawable/background"
android:layout_height="match_parent">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="50dp"
android:orientation="horizontal">
<TextView
android:layout_weight="1"
style="@style/iconStyle"
android:text="图标"/>
<TextView
android:layout_weight="2"
style="@style/titleStyle"
android:text="姓名"/>
<TextView
android:layout_weight="3"
style="@style/titleStyle"
android:text="电话"/>
</LinearLayout>
<View
android:layout_width="match_parent"
android:layout_height="1dp"
android:background="@color/colorPrimary"
android:layout_margin="5dp"/>
<ListView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:dividerHeight="1dp"
android:divider="#000"
android:id="@+id/lv_contact"/>
</LinearLayout>
显示为
当然在定义ListView标签的时候我们还可以定义滚动条的出现和隐藏
语句是 **android:fadeScrollbars=“false”;**当为false时是不自动隐藏,一般情况下没有要求的话我们都是不设置它,因为它默认为ture,是当用户滑动后自动隐藏,在这里我只是废话一下!!!!!!!!!
我们现在来做一个实列
二,如何在Activity中编写代码
1,先获取ListView对象
2,准备数据源(Array数组)
3,配置适配器(ArrayAdapter)
4,将适配器关联到ListView
来个案列代码
package com.example.arrayadapterproj;
import androidx.appcompat.app.AppCompatActivity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import android.widget.Toast;
public class MainActivity extends AppCompatActivity {
//定义控件
// private ListView lvPoem;
// //定义数据源,并给引进数据
// private String[] authors ;
// private String[] titles;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_arrayadater);
//1,获取ListView对象
ListView li = findViewById(R.id.lv_poem);
//2,准备数据源
String[] dates = {"王者荣耀啊","大营销部","打游戏不","是李白啊"};
/**
* this context 上下文
* android.R.layout.simple_list_item_1 行布局,系统自带的布局
* datas 数据源
* 我们可以记下来和下一个适配器SimpleAdapter做比较,这样比较好记忆
* */
//3,准备适配器Adapter
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1,dates);
//4,将适配器关联到ListView
li.setAdapter(adapter);
}
}
为了演示上面写的Java代码,现在我们把行布局item布局文件也写下来
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent">
<!-- 列表控件:
android:divider :分割线的颜色
android:dividerHeight:分割线的高度
-->
<ListView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:divider="#f0f0f0"
android:id="@+id/lv_poem"
android:dividerHeight="10dp">
</ListView>
</LinearLayout>
这样我们就写好了Java代码,和自定义行布局,现在来运行虚拟机看看情况
现在我们来了解一下什么是适配器Adapter
适配器是数据和视图间的桥梁,她负责把数据提供的内容显示到视图所定定义的外观中去。
今天说的是数组适配器ArrayAdapter。