您的位置:首页 > 移动开发 > Android开发

Android控件之ListView(一)

2015-10-27 15:22 555 查看
简介: ListView是Android开发中最常用的控件之一,它能够以列表的形式展示具体的内容,并且能够根据内容的长度在屏幕上自适应显示。

它既可以显示简单的文字信息,又可以显示图片与文字的丰富组合,还可以对点击事件作出处理。

实现ListView的方式有多种,在此总结一下ListView的几种实现方式。

简单文字显示:

如下图:



实现方式一: 将数据写入values文件加下的arrays.xml中,这种实现方式不需要在MainActivity中进行数据绑定。

1.0 如果values文件夹下没有arrays.xml文件,则新建arrays.xml

arrays.xml:

<?xml version="1.0" encoding="utf-8"?>
<resources>
<string-array name="books">
<item>朝花夕拾</item>
<item>大学</item>
<item>古文观止</item>
<item>战国策</item>
<item>程序员炼成记</item>
</string-array>
</resources>


2.0 通过 android:entries=”@array/books”引入在arrays.xml中定义的books数据

activity_main.xml:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="com.lgl.listview.MainActivity" >

<ListView
android:id="@+id/listView"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:entries="@array/books" />

</RelativeLayout>


3.0 MainActivity中没有任何改动

MainActivity:

package com.lgl.listview;

import android.app.Activity;
import android.os.Bundle;

public class MainActivity extends Activity {

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}

}


实现方式二: 通过 ArrayAdapter 绑定数据源

1.0 在layout文件夹下新建list_item.xml文件

list_item.xml:

<?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" >
</TextView>


2.0 在activity_main.xml中定义一个ListView控件

layout/activity_main.xml:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="com.lgl.listview2.MainActivity" >

<ListView
android:id="@+id/listView"
android:layout_width="fill_parent"
android:layout_height="fill_parent" />

</RelativeLayout>


3.0 通过ArrayAdapter来绑定数据

MainActivity:

package com.lgl.listview2;

import android.app.Activity;
import android.os.Bundle;
import android.widget.ArrayAdapter;
import android.widget.ListView;

public class MainActivity extends Activity {

private ListView listView;
private String[] animals = new String[] {"狮子","老虎","大象","羊驼","山鹰"};

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

/**
* 1.0
* 获取ListView的引用
* 新建适配器; 三个参数分别为:当前上下文、显示数据的list_item文件、数据源
* 绑定适配器
*/
listView = (ListView) findViewById(R.id.listView);
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, R.layout.list_item, animals);
listView.setAdapter(adapter);

/**
* 2.0
* 此外,还可以通过ArrayAdapter的add方法动态添加数据
*/
//listView = (ListView) findViewById(R.id.listView);
//ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, R.layout.list_item);
//adapter.add("狮子");
//adapter.add("老虎");
//adapter.add("大象");
//adapter.add("羊驼");
//adapter.add("山鹰");
//listView.setAdapter(adapter);

/**
* 3.0
* 除了自定义list_item.xml文件来显示数据外,Android还为我们提供了系统自定义好的列表来显示数据
*/
//listView = (ListView) findViewById(R.id.listView);
//ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, animals);
//listView.setAdapter(adapter);
}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: