/* * 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());
相关推荐
本文将深入探讨如何在Visual C++环境下,利用VS2008创建一个实例,实现从一个对话框(Dialog Box)向另一个对话框发送自定义消息。 首先,我们需要理解Windows消息机制的基本概念。在Windows操作系统中,窗口...
自定义控件是C#编程中一个重要的概念,它允许开发者根据需求扩展或修改内置控件的功能和外观,以满足特定项目的需求。在本案例中,我们将深入探讨如何自定义ComboBox控件。 ComboBox控件是Windows Forms中一个非常...
本篇将详细讲解如何在VS2015与Qt5.10.0环境下,通过参考Qwt6.1.3的源码,实现在一个DLL文件中包含多个自定义控件,并在Qt Designer中集成和使用。 首先,我们需要理解Qt的插件系统。Qt的控件插件允许我们在运行时...
iPhone开发学习笔记005——使用XIB自定义一个UIView,然后将这个view添加到controller的view。
1. **创建函数源代码**:首先,你需要编写一个包含自定义函数的Pascal源代码文件,例如`Frfun2.dpk`和`Frfuns3d.pas`中的内容。这个源代码将实现函数的具体逻辑。比如,`Frfuns3d.pas`可能包含了一个三维图表处理的...
本教程将基于给定的"C#自定义漂亮按钮"主题,深入讲解如何利用C#和Visual Studio 2010创建一个自定义的按钮控件。我们将主要探讨以下几个方面: 1. **自定义控件基础**: 在.NET Framework中,自定义控件是通过...
在本示例中,我们将深入探讨如何在VS2010下创建一个自定义的圆形按钮控件。 自定义控件是在.NET Framework中扩展标准控件功能的一种方法。这允许开发者根据项目需求定制UI元素,提高应用的用户体验和一致性。在C#中...
例如,可以添加一个自定义的OnPaint方法来改变CheckBox的绘制样式,或者添加自定义的Click事件处理来实现更复杂的行为。 ```csharp public partial class CheckBoxEx : Control { public CheckBoxEx() { ...
- 创建一个自定义的标题区域,这通常是一个QWidget子类,包含标题文本和关闭、最小化、最大化按钮。 - 在标题区域上设置鼠标事件处理器,监听鼠标按下和移动事件,实现窗口拖动功能。当鼠标按下时记录当前位置,...
PB自定义button控件 带移入移出效果 自定义背景色 边框
本主题将深入探讨如何创建一个漂亮的自定义控件,特别是关于GroupBox和Button的定制。GroupBox通常用于将相关控件分组,而Button则是用户交互的核心组件。通过自定义这些控件,我们可以实现独特的设计风格,增强应用...
在IT行业中,自定义组合控件的实现是Android开发中一个重要的知识点,它涉及到UI设计、自定义View以及布局管理等多个领域。自定义控件可以让开发者根据特定需求创建出具有独特功能和外观的用户界面元素,提升应用的...
本主题将深入探讨如何在C#中自定义一个类似于系统默认`MessageBox`的控件。 `MessageBox`是.NET Framework提供的一种标准对话框,它用于向用户显示信息、询问问题或确认操作。然而,系统默认的`MessageBox`功能有限...
这篇内容将深入探讨如何在Android中创建一个自定义日期选择器,并通过源码分析来增强我们的理解。 首先,我们要明白自定义日期选择器的基本结构。通常,它会包含一个日历视图,让用户可以选择年、月、日,有时还...
自定义控件是软件开发中的一个重要环节,特别是在UI设计和用户体验优化上。 自定义控件的创建通常涉及以下几个关键知识点: 1. **继承与派生**:在C#中,自定义控件通常是通过继承已有的系统控件(如Button、Label...
本项目似乎是一个关于自定义WinForm表单的实例,其中涉及到控件的自定义属性、控件内数据的定义,以及利用XML进行数据的存储和加载。让我们深入探讨这些知识点。 首先,**自定义WinForm表单**是指开发人员根据需求...
下面的例子中,我们有一个并行流,这个并行流使用了一个自定义的线程池去计算1到 1,000,000的和。 知识点:可以使用ForkJoinPool的构造方法并设定并行级别来创建一个自定义的线程池。 4. 总结 我们简要地看了一下...
创建自定义RadioButton的第一步是创建一个新的UserControl。在Visual Studio中,右键点击项目,选择“添加”->“用户控件”。然后,在新打开的设计视图中,将RadioButton控件拖放到UserControl上。接下来,我们可以...
自定义View通常涉及到创建一个新的View类,继承自View或已有的View子类(如TextView、ImageView等),然后重写它的`onDraw()`方法,以绘制我们想要的图形或交互。此外,还可以通过重写`onMeasure()`来调整视图的尺寸...