`
gryphone
  • 浏览: 433609 次
  • 性别: Icon_minigender_1
  • 来自: 苏州
社区版块
存档分类
最新评论

自定义 ListView 中的 item

阅读更多
[功能]
* AdapterView
- ListView
- GridView
- Gallery
- Spinner

* Adapter
- SimpleAdapter
- SimpleCursorAdapter
- ArrayAdapter

至于 AdapterView & Adapter 如何选择的问题 有2点需要注意:
× AdapterView  的选择 只和界面有关 和具体数据无关
× Adapter 的选择 只喝数据有关 和界面无关
二者耦合度高 互不干涉!

android给出的AdapterView中所使用的Adapter的item都是TextView 即 只能显示一下文字信息 这就限制了它的应用 所以现在告诉大家怎么使用别的View


[思路]
1. 自定义一个 extends BaseAdapter 的 class 如 public class CustomList extends BaseAdapter
2. 填充 CustomList 的一些方法 如下:
public int getCount()
public Object getItem(int position)
public long getItemId(int position)
public View getView(int position, View convertView, ViewGroup parent)



[代码]
1. 比如 现在有下列数据 要求显示之
String[] week = {
	"JAN","FEB","MAR","APR",
            "MAY","JUN","JUL","AUG","SEP","OCT","NOV","DEC "
	};



2. 一些函数的定义如下
public class CustomList extends BaseAdapter {
    	Activity activity;
    	
    	//construct
    	public CustomList(Activity a ) {
    		activity = a;
    	}
    	
		@Override
		public int getCount() {
			// TODO Auto-generated method stub
			return week.length;
		}

		@Override
		public Object getItem(int position) {
			// TODO Auto-generated method stub
			return week[position];
		}

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

		@Override
		public View getView(int position, View convertView, ViewGroup parent) {
			// TODO Auto-generated method stub
			TextView tv = new TextView(activity);
			tv.setText(week[position]);
			return tv;
		}
    	
    }


3. 考虑到美观 我们可以把getView()的一些填充提取出来 即 根据目标的position 得到目标所需View
public View addCustomView(int position){
			View view = new View(activity);
			
			switch(position){
			case 11:
				Button btn = new Button(activity);
				btn.setText("Yes!");
				
				view = btn;
			case 12:
				ImageView iv = new ImageView(activity);
				iv.setImageResource(R.drawable.robot);
				
				view = iv;
				
				break;
			default:
				TextView tv = new TextView(activity);
				tv.setGravity(1);
				tv.setText(week[position]);
				tv.setPadding(5, 5, 5, 5);
				view = tv;
			}
			
			return view;
		}


4. 如何使用
public View getView(int position, View convertView, ViewGroup parent) {
			// TODO Auto-generated method stub
			return addCustomView(position);
		}



这样 我们如果要定制某个position的View 就可以增加相应的case..


done!
分享到:
评论

相关推荐

    自定义listview的item控件

    当列表中的每一项需要有不同的显示样式或包含不同内容时,我们就需要自定义ListView的Adapter。这个过程涉及到Android的视图复用机制、数据绑定以及事件处理等多个核心知识点。 1. **Adapter原理**: Android的...

    C# 强大的自定义ListView ObjectListViewFull-2.4.1

    本文将深入探讨C#中的自定义ListView以及ObjectListViewFull-2.4.1这个强大的工具。 ObjectListView是一个开源的.NET组件,它扩展了Windows Forms的ListView控件,提供了更多的功能和易用性。这个库的版本2.4.1带来...

    C# 自定义ListView

    通过研究这些代码,你可以更深入地理解如何在C#中自定义ListView以加载图片,并可能从中获得灵感,为自己的项目实现类似的功能。 总之,自定义ListView是提升用户界面体验的重要手段,特别是在需要展示大量图文信息...

    C# ListView中添加多种自定义控件源码

    4. 最后,将自定义的ListViewItem添加到ListView控件中。 ```csharp ListView1.Items.Add(item); ``` 三、添加ComboBox控件 1. 同样,创建一个自定义的ListViewItem类,这次添加ComboBox字段。 ```csharp public ...

    ListView自定义Item

    当需要对ListView的显示效果进行个性化定制时,我们通常会涉及到自定义Item。本篇文章将深入探讨如何实现ListView自定义Item,以及如何通过重写代理类来达到类似网易云PC客户端的效果。 首先,我们需要了解...

    1.8 自定义ListView中的行

    `1.8 自定义ListView中的行`这个主题主要涉及如何根据应用需求调整ListView中每一行的显示样式,使其更加个性化和符合用户界面设计。以下将详细介绍这个过程,以及相关的知识点。 首先,自定义ListView的行通常涉及...

    android自定义listview使用方法

    本教程将详细讲解如何在Android中实现自定义ListView,包括基本的ListView、带图片的ListView以及带有按钮的ListView。 1. **基本的ListView** - 首先,你需要在布局文件中添加ListView元素,并为其设置ID。例如:...

    TabHost中填充自定义ListView

    在Android开发中,`TabHost` 是一个非常重要的组件,用于实现多标签页面的切换,而将自定义的`ListView`填充到`TabHost`中则可以构建出复杂的交互界面。下面我们将详细探讨如何实现这一功能。 首先,我们需要了解`...

    自定义ListView

    自定义ListView是为了满足更复杂的需求,比如添加特定的视图元素、实现特殊的功能或者优化性能。在这个例子中,我们关注的是“自定义含多选框的ListView”。 自定义ListView主要涉及以下几个方面: 1. **适配器...

    自定义ListView(适配器和布局)

    使用LayoutInflater的`inflate()`方法将布局文件加载到item中,如下所示: ```java View itemView = LayoutInflater.from(parent.getContext()).inflate(R.layout.list_item, parent, false); ``` 三、数据绑定与...

    Android 自定义listview 轻松实现360软件详情页

    在Android中,我们可以通过自定义ListView的Adapter和Header来实现这一特性。 1. **自定义ListView的步骤**: - 创建一个新的继承自`BaseAdapter`的Adapter类。在这个类中,你需要重写`getCount()`、`getItem()`、...

    自定义ListView以及图片的左右切换

    在Android开发中,自定义ListView和图片的左右切换是常见的需求,这涉及到用户界面的交互设计和性能优化。本文将详细解析这两个知识点。 首先,我们来看`ImageSwitcher`实现图片的左右移动。`ImageSwitcher`是...

    WPF的ListView控件自定义布局用法实例

    本实例将深入讲解如何在WPF中自定义ListView控件的布局。 首先,自定义布局主要涉及到两部分:ControlTemplate和DataTemplate。ControlTemplate定义了ListView的整体外观和行为,而DataTemplate则决定了每个Item...

    完美仿QQ侧滑操作,自定义listview

    自定义的listview来做的,本来的思路是自定义item的根...于是改用自定义listview,结果很喜人,个人觉得比较完美,支持3.0以下, 由于是属性动画需要支持到3.0以下,所以使用了nineoldandroid这个开源的属性动画库。

    ScrollView中自定义ListView

    文件"ListViewInScrollView"可能包含了实现这个功能的源代码示例,开发者可以参考这个文件来进一步理解和实践自定义ListView在ScrollView中的应用。自定义控件是Android开发中的常见技巧,熟练掌握这种技术有助于...

    自定义listview 圆角listviewitem 处理 选中背景处理

    - **方式二:代码动态绘制**:在自定义的ListView项视图类中,重写`onDraw()`方法,使用`Canvas`对象来绘制带有圆角的矩形背景。 2. **处理选中背景** - **监听点击事件**:可以使用`OnItemClickListener`来监听...

    自定义ListView,实现Item侧滑删除及侧滑出菜单效果

    自定义ListView不仅可以提供丰富的用户交互体验,还能让应用界面更具吸引力。本示例着重讲解如何实现ListView的两个功能:Item的侧滑删除以及侧滑弹出菜单。 首先,侧滑删除是通过在ListView的每个Item上添加手势...

    自定义listview实现联系人排序

    总的来说,自定义ListView是Android开发中的一个重要技巧,它允许开发者根据应用需求定制列表展示方式,实现各种复杂的交互和数据操作。通过学习和实践,我们可以更好地理解和掌握Android UI开发的精髓。

    自定义ListView背景

    本篇将深入探讨如何在Android中实现自定义ListView背景,并结合源码分析和实用工具来增强我们的开发能力。 1. **自定义背景的基本步骤** - 创建XML布局文件:首先,我们需要创建一个XML布局文件来定义ListView的每...

Global site tag (gtag.js) - Google Analytics