[功能]
* 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的Adapter。这个过程涉及到Android的视图复用机制、数据绑定以及事件处理等多个核心知识点。 1. **Adapter原理**: Android的...
本文将深入探讨C#中的自定义ListView以及ObjectListViewFull-2.4.1这个强大的工具。 ObjectListView是一个开源的.NET组件,它扩展了Windows Forms的ListView控件,提供了更多的功能和易用性。这个库的版本2.4.1带来...
通过研究这些代码,你可以更深入地理解如何在C#中自定义ListView以加载图片,并可能从中获得灵感,为自己的项目实现类似的功能。 总之,自定义ListView是提升用户界面体验的重要手段,特别是在需要展示大量图文信息...
4. 最后,将自定义的ListViewItem添加到ListView控件中。 ```csharp ListView1.Items.Add(item); ``` 三、添加ComboBox控件 1. 同样,创建一个自定义的ListViewItem类,这次添加ComboBox字段。 ```csharp public ...
当需要对ListView的显示效果进行个性化定制时,我们通常会涉及到自定义Item。本篇文章将深入探讨如何实现ListView自定义Item,以及如何通过重写代理类来达到类似网易云PC客户端的效果。 首先,我们需要了解...
`1.8 自定义ListView中的行`这个主题主要涉及如何根据应用需求调整ListView中每一行的显示样式,使其更加个性化和符合用户界面设计。以下将详细介绍这个过程,以及相关的知识点。 首先,自定义ListView的行通常涉及...
本教程将详细讲解如何在Android中实现自定义ListView,包括基本的ListView、带图片的ListView以及带有按钮的ListView。 1. **基本的ListView** - 首先,你需要在布局文件中添加ListView元素,并为其设置ID。例如:...
在Android开发中,`TabHost` 是一个非常重要的组件,用于实现多标签页面的切换,而将自定义的`ListView`填充到`TabHost`中则可以构建出复杂的交互界面。下面我们将详细探讨如何实现这一功能。 首先,我们需要了解`...
自定义ListView是为了满足更复杂的需求,比如添加特定的视图元素、实现特殊的功能或者优化性能。在这个例子中,我们关注的是“自定义含多选框的ListView”。 自定义ListView主要涉及以下几个方面: 1. **适配器...
使用LayoutInflater的`inflate()`方法将布局文件加载到item中,如下所示: ```java View itemView = LayoutInflater.from(parent.getContext()).inflate(R.layout.list_item, parent, false); ``` 三、数据绑定与...
在Android中,我们可以通过自定义ListView的Adapter和Header来实现这一特性。 1. **自定义ListView的步骤**: - 创建一个新的继承自`BaseAdapter`的Adapter类。在这个类中,你需要重写`getCount()`、`getItem()`、...
在Android开发中,自定义ListView和图片的左右切换是常见的需求,这涉及到用户界面的交互设计和性能优化。本文将详细解析这两个知识点。 首先,我们来看`ImageSwitcher`实现图片的左右移动。`ImageSwitcher`是...
本实例将深入讲解如何在WPF中自定义ListView控件的布局。 首先,自定义布局主要涉及到两部分:ControlTemplate和DataTemplate。ControlTemplate定义了ListView的整体外观和行为,而DataTemplate则决定了每个Item...
自定义的listview来做的,本来的思路是自定义item的根...于是改用自定义listview,结果很喜人,个人觉得比较完美,支持3.0以下, 由于是属性动画需要支持到3.0以下,所以使用了nineoldandroid这个开源的属性动画库。
文件"ListViewInScrollView"可能包含了实现这个功能的源代码示例,开发者可以参考这个文件来进一步理解和实践自定义ListView在ScrollView中的应用。自定义控件是Android开发中的常见技巧,熟练掌握这种技术有助于...
- **方式二:代码动态绘制**:在自定义的ListView项视图类中,重写`onDraw()`方法,使用`Canvas`对象来绘制带有圆角的矩形背景。 2. **处理选中背景** - **监听点击事件**:可以使用`OnItemClickListener`来监听...
自定义ListView不仅可以提供丰富的用户交互体验,还能让应用界面更具吸引力。本示例着重讲解如何实现ListView的两个功能:Item的侧滑删除以及侧滑弹出菜单。 首先,侧滑删除是通过在ListView的每个Item上添加手势...
总的来说,自定义ListView是Android开发中的一个重要技巧,它允许开发者根据应用需求定制列表展示方式,实现各种复杂的交互和数据操作。通过学习和实践,我们可以更好地理解和掌握Android UI开发的精髓。
本篇将深入探讨如何在Android中实现自定义ListView背景,并结合源码分析和实用工具来增强我们的开发能力。 1. **自定义背景的基本步骤** - 创建XML布局文件:首先,我们需要创建一个XML布局文件来定义ListView的每...