Android之ListView和ArrayAdapter的组合使用

    ListViewandroid中的列表显示。主要是用于数据的显示,一般是从网络上解析出来的数据,显示到ListView上。能够显示不少行,每一行习惯上称之为item。而要控制ListView总共要显示多少个item,以及每一个item的布局,则须要使用到适配器------- adapterjava

首先使用ArrayAdapter适配器。而ListViewArrayAdapter将在如下的代码中详细讲解。更多详细的信息,请参考Android官方文档。android

MainActivity中的内容以下所示:数组

package com.zzh.day_listview;

import java.util.ArrayList;

import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemLongClickListener;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import android.widget.Toast;

public class MainActivity extends Activity
{
	ListView lv;

	ArrayList<String> list = new ArrayList<String>();

	@Override
	protected void onCreate(Bundle savedInstanceState)
	{
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
		lv = (ListView) findViewById(R.id.listView1); // 找到lv的对象
		// 初始化list集合。
		for (int i = 0; i < 20; i++)
		{
			list.add("item --  " + i);
		}
		// 设置ListView的适配器。
		/*
		 * ArrayAdapter构造方法中的参数: 
		 * 参数一:当前上下文路径,即要在哪一个Activity中显示。
		 * 参数二:布局文件的ID。这里使用的是系统提供的
		 * 。这个布局文件与通常的布局文件不一样,ArrayAdapter中,只接收有一个TextView的布局文件
		 * ,如R.layout.list_item。 
		 * 参数三:要显示的数据集合。在重载的构造方法中:第三个参数还能够是一个数组。
		 */
		ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,
				android.R.layout.simple_list_item_1, list);

		lv.setAdapter(adapter);// 将适配器注册给ListView

		// 给ListView增长长按监听事件.增长点击事件是lv.setOnClickListener();
		
		lv.setOnItemLongClickListener(new OnItemLongClickListener()
		{
			/**
			 * 参数一:当前点击的item所在的父控件 
			 * 参数二:当前所点击的那个item对象 
			 * 参数三:所点击的位置。
			 * */
			@Override
			public boolean onItemLongClick(AdapterView<?> parent, View view,
					int position, long id)
			{
				Toast.makeText(MainActivity.this, "当前点击了第" + position+"项",Toast.LENGTH_LONG).show();
				return false;
			}
		});
	}
}

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" >

    <ListView
        android:id="@+id/listView1"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_alignParentTop="true"
        android:layout_centerHorizontal="true" >
    </ListView>

</RelativeLayout>

list_item.xml中(不是必须的文件布局):app

<TextView xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/textView1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content" />

效果以下图:
ide

wKiom1Up9EzD_Yy5AAC1EhS6BBk638.jpg

相关文章
相关标签/搜索