安卓学习之路之如何显示一个listview列表视图

1.新建个安卓项目,点击res下的values目录,在该目录下创建一个名字为arrays.xml的Android xml文件,然后开始在里面写代码,代码如下:

<?xml version="1.0" encoding="utf-8"?>
<resources>
<string-array name="arrays">
    <item>ListView1</item>
    <item>ListView2</item>
    <item>ListView3</item>
    <item>ListView4</item>
    <item>ListView5</item>
    <item>ListView7</item>
    <item>ListView8</item>
    <item>ListView9</item>
    </string-array>

</resources>


 

2.然后再点击res下的layout目录,打开里面已有的activity_main.xml文件,再修改下布局文件,将其设置为垂直线性布局,再在里面添加一个ListView视图,代码如下:

<LinearLayout 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"
    android:orientation="vertical"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context=".MainActivity" >

   <ListView
       android:id="@+id/listView1"
       android:layout_width="wrap_content"
       android:layout_height="wrap_content"
       android:entries="@array/arrays">
       
   </ListView>

</LinearLayout>


 

3,此时我们运行模拟器就可以出现下图的ListView列表了:

安卓学习之路之如何显示一个listview列表视图_第1张图片

4.是不是很简单啊,如果列表超出模拟器范围的话,会在右侧产生个滚动条,一向上拉它就会向下滚动,一到列表的末尾向下拉就会向上滚动!

安卓学习之路之如何显示一个listview列表视图_第2张图片

5.接下来介绍一个比较难点显示的ListView,其中items.xml里面放了一个ImageView图像视图还有个TextView文本视图,再添加到ListView里面去,先在res下的layout目录下创建一个新的Android xml文件,取名为items.xml,然后添加ImageView和TextView,布局设置为水平线性布局,接下来附上代码:

<?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/image"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:adjustViewBounds="true"
        android:maxWidth="72px"
        android:minHeight="72px"
        android:paddingBottom="20px"
        android:paddingRight="10px"
        android:paddingTop="20px" />

    <TextView
        android:id="@+id/title"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center"
        android:padding="10px" />

</LinearLayout>


 

6.然后在res下的layout目录下activity_main.xml文件下修改代码,布局方式设置为垂直线性布局,里面添加个ListView控件,接下来附上布局文件的代码:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context=".MainActivity" >

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


</LinearLayout>


 

7.接下来打开src下的Mainactivity.java文件,在里面添加代码,用于显示ListView中items项的ImageView图像视图和TextView文本视图,其中image01-image13的图片是我存放在drawable-hdpi目录下的,代码如下,其中有注释:

package com.example.qqlistview4;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import android.app.Activity;
import android.os.Bundle;
import android.view.Menu;
import android.widget.ListView;
import android.widget.SimpleAdapter;

public class MainActivity extends Activity {

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
		ListView listview=(ListView)findViewById(R.id.listView1);	//获取列表视图
		int[]imageId=new int[]{R.drawable.img01,R.drawable.img02,R.drawable.img03,R.drawable.img04,R.drawable.img05,R.drawable.img06,R.drawable.img07,
				R.drawable.img08,R.drawable.img09,R.drawable.img10,R.drawable.img11,R.drawable.img12,R.drawable.img13};//定义并初始化保存图片id的数组
		String[] title=new String[]{"乔峰(丐帮帮主)","虚竹(逍遥派传人)","段誉(大理世子)","花无缺(移花接木)","郭靖(降龙十八掌)","杨过(独臂侠)","黄蓉(打狗棒法)","黄老邪(东邪)","小龙女(古墓里的一朵花)","欧阳锋(西毒)","一灯大师(南帝)","洪七公(北丐)","王重阳(中神通)"};
		List<Map<String,Object>>listItems=new ArrayList<Map<String,Object>>();	//创建一个List集合
		//通过for循环将图片id和列表项文字放到Map中,并添加到List集合中
		for(int i=0;i<imageId.length;i++){
			Map<String,Object>map=new HashMap<String,Object>();	//实例化map对象
			map.put("image",imageId[i]);
			map.put("title",title[i]);
			listItems.add(map);		//将map对象添加到List集合中
		}
		SimpleAdapter adapter=new SimpleAdapter(this,listItems,R.layout.items,new String[]{"title","image"},new int[]{R.id.title,R.id.image});//创建SimpleAdapter
		listview.setAdapter(adapter);	//将适配器与ListView关联
	}

	@Override
	public boolean onCreateOptionsMenu(Menu menu) {
		// Inflate the menu; this adds items to the action bar if it is present.
		getMenuInflater().inflate(R.menu.main, menu);
		return true;
	}

}


8.接下来运行模拟器,将此项目部署到模拟器上,可得到这样的ListView列表视图效果,如下图所示:

安卓学习之路之如何显示一个listview列表视图_第3张图片

 

9.就这样,是不是有点像QQ好友列表一样啊,其中可以上下滚动。

10.以上内容,仅供参考学习,这是为我个人学习积累的东西,转载的话,请注明出处,写得不好,敬请见谅,如果里面有什么问题或者错误的,可以评论和发消息,我会及时改正,如有雷同,纯属巧合!哈哈,好了,不晚了,睡觉去了!

你可能感兴趣的:(安卓,ListView)