ListView绝对可以称得上是Android中最常用的控件之一,几乎所有的应用程序都会用到它。由于手机屏幕空间都比较有限,能够一次性在屏幕上显示的内容并不多,当我们的程序中有大量的数据需要展示的时候,就可以借助ListView来实现。ListView允许用户通过手指上下滑的方式将屏幕外的数据滚动到屏幕内,同时屏幕上原有的数据则会滚动出屏幕。相信你其实每天都在使用这个控件,比如查看QQ聊天记录,翻阅微博最新消息,等等。
话不多说,来实践下。
效果图:
activity_main.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">
<ListView
android:id="@+id/listView"
android:layout_width="match_parent"
android:layout_height="match_parent" />
</LinearLayout>
MainActivity.java代码:
package com.example.administrator.activitydemo;
import android.app.ProgressDialog;
import android.content.DialogInterface;
import android.os.Bundle;
import android.support.annotation.Nullable;
import android.support.v7.app.AlertDialog;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.ListView;
import android.widget.Toast;
public class MainActivity extends AppCompatActivity {
private ListView listView;
private String[] data = {"Apple", "Banana", "Orange", "Watermelon",
"Pear", "Grape", "Pineapple", "Strawberry", "Cherry", "Mango",
"Apple", "Banana", "Orange", "Watermelon",
"Pear", "Grape", "Pineapple", "Strawberry", "Cherry", "Mango"};
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
initView();//初始化UI控件
initData();//初始化数据
}
private void initView() {
listView = (ListView) findViewById(R.id.listView);
}
private void initData() {
ArrayAdapter<String> adapter = new ArrayAdapter<String>(MainActivity.this,
android.R.layout.simple_list_item_1, data);
listView.setAdapter(adapter);
}
}
OK,这种方式很容易就实现了可以数据下滑的ListView,代码也不多。
步骤1:声名ListView控件
步骤2:初始化ListView控件
步骤3:定义String类型数组,里面放入需要显示的String类型字符串
步骤4:定义并实例化ArrayAdapter(数组适配器),这里在定义的时候需要传入3个参数,第一个参数类型为Context,这里传入本类对象,第二个参数类型为int,这里传入的是ListView每个列表项中的布局文件,以保证每个列表项的显示样式是一样的,最后一个参数是String数组,也就是数据源。
步骤5:最后通过ListView控件中的setAdapter(adapter)方法,将初始化好的ArrayAdapter对象作为参数传递进去即可。