`
zhangfy068
  • 浏览: 149106 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

自定义一个ArrayListAdapter

 
阅读更多
/*
 * Copyright (C) 2009 Teleca Poland Sp. z o.o. <android@teleca.com>
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

package grimbo.android.demo.adapter;

import java.util.ArrayList;

import android.app.Activity;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.ListView;

/**
 * Nice wrapper-abstraction around ArrayList
 * 
 * @author Lukasz Wisniewski
 *
 * @param <T>
 */
public abstract class ArrayListAdapter<T> extends BaseAdapter{
	
	protected ArrayList<T> mList;
	protected Activity mContext;
	protected ListView mListView;
	
	public ArrayListAdapter(Activity context){
		this.mContext = context;
	}

	@Override
	public int getCount() {
		if(mList != null)
			return mList.size();
		else
			return 0;
	}

	@Override
	public Object getItem(int position) {
		return mList == null ? null : mList.get(position);
	}

	@Override
	public long getItemId(int position) {
		return position;
	}

	@Override
	abstract public View getView(int position, View convertView, ViewGroup parent);
	
	public void setList(ArrayList<T> list){
		this.mList = list;
		notifyDataSetChanged();
	}
	
	public ArrayList<T> getList(){
		return mList;
	}
	
	public void setList(T[] list){
		ArrayList<T> arrayList = new ArrayList<T>(list.length);  
		for (T t : list) {  
			arrayList.add(t);  
		}  
		setList(arrayList);
	}
	
	public ListView getListView(){
		return mListView;
	}
	
	public void setListView(ListView listView){
		mListView = listView;
	}

}

 使用方法

 1、自定义一个adapter

public class PurpleAdapter extends ArrayListAdapter<PurpleEntry>

 2、

//存入一个自定义泛型
private ArrayList<PurpleEntry> browseListEntry;

mBrowseJamendoPurpleAdapter.setList(browseListEntry);

 

3、在自定义PurpleAdapter 中使用

if(mList.get(position).getText() != null){
			holder.text.setText(mList.get(position).getText());

 

分享到:
评论

相关推荐

    C# 自定义控件 自定义ComboBox

    自定义控件是C#编程中一个重要的概念,它允许开发者根据需求扩展或修改内置控件的功能和外观,以满足特定项目的需求。在本案例中,我们将深入探讨如何自定义ComboBox控件。 ComboBox控件是Windows Forms中一个非常...

    Qt5(VS2015+Qt5.10.0)下实现一个Dll文件中包含多个自定义控件

    本篇将详细讲解如何在VS2015与Qt5.10.0环境下,通过参考Qwt6.1.3的源码,实现在一个DLL文件中包含多个自定义控件,并在Qt Designer中集成和使用。 首先,我们需要理解Qt的插件系统。Qt的控件插件允许我们在运行时...

    给FastReport增加一个自定义函数

    1. **创建函数源代码**:首先,你需要编写一个包含自定义函数的Pascal源代码文件,例如`Frfun2.dpk`和`Frfuns3d.pas`中的内容。这个源代码将实现函数的具体逻辑。比如,`Frfuns3d.pas`可能包含了一个三维图表处理的...

    c#自定义漂亮按钮

    本教程将基于给定的"C#自定义漂亮按钮"主题,深入讲解如何利用C#和Visual Studio 2010创建一个自定义的按钮控件。我们将主要探讨以下几个方面: 1. **自定义控件基础**: 在.NET Framework中,自定义控件是通过...

    C# WinForm 自定义CheckBox

    例如,可以添加一个自定义的OnPaint方法来改变CheckBox的绘制样式,或者添加自定义的Click事件处理来实现更复杂的行为。 ```csharp public partial class CheckBoxEx : Control { public CheckBoxEx() { ...

    QT自定义窗口 自由拖动 自定义标题

    - 创建一个自定义的标题区域,这通常是一个QWidget子类,包含标题文本和关闭、最小化、最大化按钮。 - 在标题区域上设置鼠标事件处理器,监听鼠标按下和移动事件,实现窗口拖动功能。当鼠标按下时记录当前位置,...

    freemarker 自定义freeMarker标签

    这通常是通过`Configuration`对象的`setSharedVariable`方法完成的,将你的自定义指令类实例绑定到一个特定的名字,这个名字就是你在模板中使用的标签名。 3. 使用自定义标签:在模板文件中,你可以像使用内置标签...

    PB自定义button控件

    PB自定义button控件 带移入移出效果 自定义背景色 边框

    WinForm 漂亮的自定义控件GroupBox,Button

    本主题将深入探讨如何创建一个漂亮的自定义控件,特别是关于GroupBox和Button的定制。GroupBox通常用于将相关控件分组,而Button则是用户交互的核心组件。通过自定义这些控件,我们可以实现独特的设计风格,增强应用...

    自定义组合控件实现

    在IT行业中,自定义组合控件的实现是Android开发中一个重要的知识点,它涉及到UI设计、自定义View以及布局管理等多个领域。自定义控件可以让开发者根据特定需求创建出具有独特功能和外观的用户界面元素,提升应用的...

    C#自定义控件之-自定义MessageBox

    本主题将深入探讨如何在C#中自定义一个类似于系统默认`MessageBox`的控件。 `MessageBox`是.NET Framework提供的一种标准对话框,它用于向用户显示信息、询问问题或确认操作。然而,系统默认的`MessageBox`功能有限...

    Android自定义日期选择器源码

    这篇内容将深入探讨如何在Android中创建一个自定义日期选择器,并通过源码分析来增强我们的理解。 首先,我们要明白自定义日期选择器的基本结构。通常,它会包含一个日历视图,让用户可以选择年、月、日,有时还...

    C#自定义控件库

    自定义控件是软件开发中的一个重要环节,特别是在UI设计和用户体验优化上。 自定义控件的创建通常涉及以下几个关键知识点: 1. **继承与派生**:在C#中,自定义控件通常是通过继承已有的系统控件(如Button、Label...

    自定义winform表单,控件自定义属性,控件定义数据,xml存入

    本项目似乎是一个关于自定义WinForm表单的实例,其中涉及到控件的自定义属性、控件内数据的定义,以及利用XML进行数据的存储和加载。让我们深入探讨这些知识点。 首先,**自定义WinForm表单**是指开发人员根据需求...

    C# WinForm 自定义 RadioButton

    创建自定义RadioButton的第一步是创建一个新的UserControl。在Visual Studio中,右键点击项目,选择“添加”-&gt;“用户控件”。然后,在新打开的设计视图中,将RadioButton控件拖放到UserControl上。接下来,我们可以...

    Java8并行流中自定义线程池操作示例

    下面的例子中,我们有一个并行流,这个并行流使用了一个自定义的线程池去计算1到 1,000,000的和。 知识点:可以使用ForkJoinPool的构造方法并设定并行级别来创建一个自定义的线程池。 4. 总结 我们简要地看了一下...

    springboot工程自定义response注解、自定义规范化返回数据结构

    在Spring Boot中,可以创建一个自定义注解,例如`@CustomResponse`,用于标记控制器方法,指示该方法应返回特定的数据结构。这个注解通常会包含一些元信息,如状态码、消息等,以便在处理过程中填充到返回结果中。...

    C# 自定义用户控件(PictureBox)

    在这个场景中,我们关注的是一个特定的自定义控件,即基于PictureBox的扩展。PictureBox是.NET Framework提供的一个标准控件,用于显示图像,而自定义用户控件(PictureBox)则是开发者为了满足特定需求对原控件进行...

    C#自定义控件.rar

    自定义控件是C#编程中的一个重要概念,它允许开发者扩展或定制标准的UI元素以满足特定需求。本资料包“C#自定义控件.rar”显然是关于如何在C#环境中创建和使用自定义控件的教程或示例代码。 自定义控件的创建通常...

Global site tag (gtag.js) - Google Analytics