`
吃货吃货
  • 浏览: 33023 次
  • 性别: Icon_minigender_1
社区版块
存档分类
最新评论

android——ListView实例

阅读更多

说实话,其实已经有段时间没有接触android开发了,不过这个学期也算是重新拾起了android开发,不过最近看到手机移动端开发应用这么火,自己也算是确定了以后以手机应用开发为主的发展方向吧。闲话不多说,直接切入正题:

大家都用过手机QQ应该知道,手机QQ上的好友列表用起来非常的方便,其实就是通过android中的一个控件listView来实现的,我们暂时先实现一个最简单的listView的例子(之后的扩展功能可以自己添加),如下图所示:

   首先我们要明确列表的显示需要三个元素:

1.ListVeiw用来展示列表的View

2.适配器用来把数据映射到ListView上的中介

3.数据 具体的将被映射的字符串,图片,或者基本组件。

   那么首先是主界面的XML文件:

<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"
    tools:context=".ListViewActivity" >

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

</LinearLayout>

 接下来是ListView列表中每一行item显示的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"
    android:orientation="vertical" >

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_margin="10dp"
        android:orientation="vertical" >

        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_margin="20dp" >

            <ImageView
                android:id="@+id/imageView"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:src="@drawable/abaose" />

            <TextView
                android:id="@+id/textView1"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_gravity="center"
                android:layout_marginLeft="40dp"
                android:text="TextView" />

        </LinearLayout>

    </LinearLayout>

</LinearLayout>

   那么下面是最关键的一部分,ListView添加一个适当的适配器,以及适配器的使用都如下所示,为了方便阅读,特意自己写了一个适配器,继承BaseAdapter:

package com.pzw.listview;

import java.util.ArrayList;
import java.util.List;

import android.app.Activity;
import android.os.Bundle;
import android.view.Menu;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.ListView;
import android.widget.TextView;

public class ListViewActivity extends Activity {
	
	private List<String> mylist = new ArrayList<String>();
	
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_list_view);
		ListView lv = (ListView) findViewById(R.id.listView);
		lv.setAdapter(new LvAdapter(mylist));
	}

	@Override
	public boolean onCreateOptionsMenu(Menu menu) {
		// Inflate the menu; this adds items to the action bar if it is present.
		getMenuInflater().inflate(R.menu.list_view, menu);
		return true;
	}
	
	protected class LvAdapter extends BaseAdapter{
		private List<String> list;
		private LvAdapter(List<String> list){
			this.list = list;
			list.add("这是一个美女");
			list.add("这是一个帅哥");
			list.add("这是一个基佬");
			list.add("这是一个逗比");
		}
		
		@Override
		public int getCount() {
			// TODO Auto-generated method stub
			return list.size();
		}

		@Override
		public Object getItem(int arg0) {
			// TODO Auto-generated method stub
			return list.get(arg0);
		}

		@Override
		public long getItemId(int arg0) {
			// TODO Auto-generated method stub
			return arg0;
		}

		@Override
		public View getView(int arg0, View arg1, ViewGroup arg2) {
			String str = list.get(arg0);
			View view = getLayoutInflater().inflate(R.layout.item_listview, null);
			TextView tv = (TextView)view.findViewById(R.id.textView1);
			tv.setText(str);
			return view;
		}
		
	}

}

 

 当然,这只是一个最简单的ListView的实现,如果你想要实现更加漂亮或者是更加酷炫的效果,可以在item_listview中随意添加各个组件,如果你觉得ListView上自带的分割线很丑的话,也可以在java代码中加上setDividerHeight(0),这样子就可以不显示自带的分割线啦~~

  • 大小: 121.6 KB
0
0
分享到:
评论

相关推荐

    安卓Android源码——Listview分页加载数据.zip

    本资源"安卓Android源码——Listview分页加载数据.zip"提供了一个关于如何在ListView中实现分页加载数据的实例。分页加载是一种优化用户体验的重要技术,它允许应用在用户滚动到底部时动态加载更多数据,而不是一次...

    安卓Android源码——ListView滚动气泡提示.rar

    这个“安卓Android源码——ListView滚动气泡提示.rar”压缩包很可能是提供了一个关于如何在ListView滚动时显示气泡提示的示例代码。这种功能常用于通知用户一些重要的信息或者在列表项上显示动态更新的数据。 在...

    安卓Android源码——listview实现图片的异步加载.zip

    本资料“安卓Android源码——listview实现图片的异步加载.zip”将深入探讨这一技术。 1. **异步加载原理** 异步加载是指在后台线程中执行耗时操作,例如网络请求或图片解码,而主线程则继续处理用户界面交互。这样...

    安卓Android源码——ListView&时间轴.zip

    本资源“安卓Android源码——ListView&时间轴.zip”包含了关于这两个组件的源代码示例,通过图片和文本文件帮助开发者理解它们的工作原理。 首先,ListView是Android SDK中的一个视图组件,用于展示一系列垂直排列...

    安卓Android源码——ListView反弹效果源码.zip

    这个压缩包文件“安卓Android源码——ListView反弹效果源码.zip”显然包含了实现ListView滚动到顶部或底部时的反弹效果的源代码。这种反弹效果,也被称为“橡皮筋效果”,常见于iOS系统中,给用户带来更自然、流畅的...

    安卓Android源码——listview 的各种动画效果.zip

    这个名为"安卓Android源码——listview 的各种动画效果.zip"的压缩包很可能包含了多个示例,展示了如何在ListView中实现丰富的动画效果,使得用户体验更加生动和有趣。以下是对这些动画效果的详细说明: 1. **进入...

    安卓Android源码——listView下拉刷新上拉刷新带阻尼效果.zip

    在"安卓Android源码——listView下拉刷新上拉刷新带阻尼效果.zip"这个压缩包中,包含的资源可能是一个实现了这些高级特性的ListView示例。 下拉刷新和上拉加载更多的功能,通常通过添加头部和底部视图来实现。头部...

    安卓Android源码——listview获取网络图片缓存优化.zip

    本压缩包“安卓Android源码——listview获取网络图片缓存优化.zip”提供了一个针对这个问题的解决方案,旨在通过优化代码来提升用户体验。 首先,我们要理解ListView的工作原理。ListView采用了一种叫做"视图复用...

    安卓Android源码——listView下拉刷新上拉刷新带阻尼效果.rar

    本项目"安卓Android源码——listView下拉刷新上拉刷新带阻尼效果.rar"就是针对这一需求的一个示例,它包含了实现这种效果的源代码和相关的截图资源。 首先,下拉刷新(Pull-to-Refresh)是指用户通过在ListView顶部...

    安卓Android源码——ListView 实现点击侧边A-Z快速查找.rar

    这个压缩包文件“安卓Android源码——ListView 实现点击侧边A-Z快速查找.rar”显然包含了一个示例,展示了如何在ListView中实现点击侧边字母栏进行快速查找的功能。这个功能对于大型数据集尤其有用,因为它使用户...

    安卓Android源码——listview滑动删除(具体效果360手机卫士后台通知).zip

    在安卓Android开发中,ListView是常用的视图组件,它用于展示多行可滚动的数据列表。本教程将聚焦于一个特定的实现:ListView的滑动删除功能,这种效果常见于360手机卫士等应用的后台通知管理界面。通过这个案例,...

    Android源码——listview 滑动删除(具体效果360手机卫士后台通知).zip

    在Android开发中,ListView是常用的一种视图组件,它能够展示大量的列表数据,并且具有良好的滚动性能。在很多应用中,比如360手机卫士的后台通知管理,我们经常看到一个滑动删除的功能,用户可以通过左右滑动列表项...

    Android开发经验总结——ListView的使用

    在Activity中实例化适配器,并将其设置给ListView。 ```java ListView listView = findViewById(R.id.list_view); MyAdapter adapter = new MyAdapter(Arrays.asList("Item1", "Item2", "Item3")); listView....

    安卓Andriod源码——listview的各种动画效果.zip

    这个压缩包"安卓Andriod源码——listview的各种动画效果.zip"显然包含了关于ListView动画效果的示例代码,这对于开发者来说是一份宝贵的资源,能够帮助他们理解和实现各种动态的、吸引用户的UI效果。 ListView的...

    安卓Andriod源码——ListView滚动气泡提示.zip

    【Android ListView 滚动气泡提示详解】 在Android应用开发中,ListView是常见的用于展示大量数据的组件,...这个压缩包中的源码实例提供了很好的学习素材,有助于开发者进一步掌握Android应用开发中的此类高级技巧。

    安卓开发之——Listview 完美释例(仿微信页面)

    本教程将深入探讨如何在Android应用中创建一个类似于微信聊天页面的ListView实例,帮助开发者更好地理解和运用ListView。 首先,理解ListView的基本结构至关重要。ListView通常与Adapter一起使用,Adapter是连接...

    安卓Andriod源码——ListView+CheckBoxUI完美版。实现全选、全不选、删除等功能.zip

    在Android开发中,...总的来说,这个源码实例对于初学者理解如何在Android中实现ListView与CheckBox的交互功能非常有帮助,同时也对中高级开发者提供了一个可参考的模板,方便他们在实际项目中快速实现类似功能。

    安卓Andriod源码——ListView多级展示,item由对象Leaf提供数据,可设置多个控件.zip

    总之,这个压缩包中的源码实例展示了如何在Android应用中利用ListView实现多级数据的展示,通过自定义数据对象和适配器,以及处理多种UI控件,来创建一个功能丰富的列表视图。这样的技术在实际开发中非常常见,尤其...

    Android之ListView+BaseAdapter左右按键切换

    综上所述,这个项目涵盖了Android开发中关于ListView、BaseAdapter以及键盘事件处理的核心知识,是提升Android UI交互体验的一个实例。通过这个项目的学习,开发者能够更好地理解和掌握Android中数据和视图之间的...

    android listview item背景色点击效果实例

    本实例“android listview item背景色点击效果”正是针对这一需求进行的开发。 在Android中,ListView的每个项(item)都是一个View或ViewGroup,通常我们通过自定义布局文件来设计每个item的显示样式。为了实现...

Global site tag (gtag.js) - Google Analytics