自定义适配器的常用思路:list + 对象
list:需要适配的数据集合;注意list只能new一次,否则适配器notifyDataSetChanged的时候找不到对象。
对象:getItem(postion)对应的数据对象,该对象的数据对应控件每个item上需要的数据。
列如:
package com.ylink.gesstrader.adapter;
import java.util.ArrayList;
import java.util.List;
import com.ylink.gesstrader.R;
import com.ylink.gesstrader.adapter.domain.NewsItem;
import android.app.Activity;
import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.RelativeLayout;
import android.widget.TextView;
public class NewsItemDragListAdapter extends BaseAdapter{
protected Activity mContext;
private LayoutInflater inflater;
public ArrayList<NewsItem> list;
public NewsItemDragListAdapter(
Activity context,
ArrayList<NewsItem> list){
this.mContext = context;
this.list = list;
}
public int getCount() {
if(list != null)
return list.size();
else
return 0;
}
public Object getItem(int position) {
return list == null ? null : list.get(position);
}
public long getItemId(int position) {
return position;
}
public View getView(int position, View convertView, ViewGroup parent) {
inflater = (LayoutInflater)mContext.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
RelativeLayout list_item = null;
list_item = (RelativeLayout)inflater.inflate(R.layout.list_item_date_str_middle, null);
TextView item_content = (TextView)list_item.findViewById(R.id.month_datestr_tv);
item_content.setText(list.get(position).getItems_title());
TextView item_date = (TextView)list_item.findViewById(R.id.month_date_tv);
item_date.setText(list.get(position).getItems_title_date());
return list_item;
}
}
Activity调用:
list_adapter = new NewsItemDragListAdapter(NewsItemListActivity.this,list);
list_view.setAdapter(list_adapter);
list_view.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view,
int position, long id) {
NewsItem row = (NewsItem)(parent.getAdapter().getItem(position));
String title = row.getItems_title();
String datetime = row.getItems_title_date();
String m_szType = row.getM_szType();
String m_uiInfoID = row.getM_uiInfoID();
Intent intent = new Intent();
Bundle bundle = new Bundle();
bundle.putString("title", title);
bundle.putString("datetime", datetime);
bundle.putString("m_szType", m_szType);
bundle.putString("m_uiInfoID", m_uiInfoID);
intent.putExtras(bundle);
intent.setClass(NewsItemListActivity.this, NewsDetailActivity.class);
NewsItemListActivity.this.startActivity(intent);
}
});
分享到:
相关推荐
2. **数据绑定**:通过自定义适配器,可以方便地将数据模型与视图元素绑定,便于数据更新和管理。 3. **复用性**:创建的自定义适配器可以应用于多个相似场景,提高代码的可重用性。 **自定义列表适配器的基本实现*...
在Android开发中,ListView是一种常用的组件,用于展示可滚动的多行数据列表。为了实现更加灵活和丰富的界面展示,我们通常需要对ListView进行自定义,这涉及到自定义Adapter的使用。自定义Adapter允许我们根据需求...
6. **自定义适配器**: 开发者可以使用自定义的ArrayAdapter或者其他类型的适配器,如CursorAdapter,来实现复杂的数据源绑定。 7. **事件监听**: 提供了方便的监听器接口,可以监听到用户的选择变化,以便进行...
总之,"一个列表对应多种风格的Item"这一知识点涵盖了Android开发中关于ListView或RecyclerView的自定义适配器、多类型Item定义以及视图复用等核心概念,对于创建复杂且动态的列表界面至关重要。通过理解和实践这些...
这一过程需要自定义适配器(Adapter)配合,以便在新数据加载完成后更新ListView的内容。 在源码学习中,你需要关注以下几个关键点: 1. **SwipeRefreshLayout**:这是Android SDK中提供的一种布局,用于实现上拉...
下面我们将详细探讨自定义Adapter与ListView结合使用的思路及代码实现。 首先,自定义Adapter的关键在于它能够根据数据集生成相应的视图,并将这些视图添加到ListView中。数据集通常是一个包含多个条目的集合,每个...
6. **自定义适配器**:HSlowListView允许开发者自定义适配器,适应各种复杂的数据结构和视图需求。 7. **滑动事件优化**:优化滑动事件的处理,确保滑动的平滑性,提高用户的交互体验。 8. **滚动性能监控**:内置...
2. **自定义适配器**:GListView允许开发者创建自定义的适配器,可以更自由地控制列表项的布局和数据绑定,支持多种类型的列表项,如头尾视图、分割线等。 3. **触摸事件处理**:GListView可能提供了更加丰富的触摸...
1. **自定义适配器(Adapter)**:通过修改默认的ExpandableListAdapter,实现一个自定义适配器,添加逻辑在滑动到顶部时,将头部视图分离并固定在顶部。这通常涉及到对滚动事件的监听和视图状态的管理。 2. **使用...
2. **自定义适配器**:查看是否创建了一个新的适配器类,用于加载和管理`ViewPager`中的页面内容。 3. **页面转换逻辑**:查找`PageTransformer`的实现,看是否添加了特殊效果,如3D翻转、淡入淡出等。 4. **扩展...
1. **自定义适配器**: - 首先,我们需要扩展BaseAdapter或ArrayAdapter,创建一个新的适配器类。在这个适配器中,我们需要维护一个数据列表,记录每个条目的状态(如是否被选中、是否可删除等)。 - 在适配器的`...
为了解决这个问题,开发者通常需要自定义适配器和滚动逻辑来实现这种效果。下面我们将深入探讨如何通过源码实现Android ListView的无限循环滚动功能。 首先,我们需要创建一个自定义的Adapter,这个Adapter需要管理...
5.常用api介绍 5.1状态切换方法说明 5.2 viewHolder方法说明 5.3适配器方法说明 5.4分割线方法说明 5.5 swipe侧滑方法说明 5.6其他api说明 6.recyclerView的wiki文档【更新中】 6.1封装库部分思路介绍
在自定义适配器中,你需要重写以下几个关键方法: 1. `getView(int position, View convertView, ViewGroup parent)`: 这是Adapter的核心方法,负责创建或复用列表项的视图。在这里,我们需要实例化SwipeLayout,并...
3. **创建适配器**:根据项目需求创建自定义适配器,实现数据的加载和页面的创建。 4. **设置适配器**:在Activity或Fragment中,实例化CircularViewPager并调用`setAdapter()`方法设置适配器。 5. **配置属性**:...
- 数据源通常来自ArrayList或其他集合类,通过继承BaseAdapter或使用已有的ArrayAdapter、CursorAdapter等来创建自定义适配器,将数据转换为ListView可显示的视图。 2. **ListView动画原理** - 在ListView中添加...
为了显示解析出来的XML数据,我们需要创建一个继承自`BaseAdapter`的自定义适配器,将数据映射到ListView的每一项。适配器通常包含四个方法:`getCount`、`getItem`、`getItemId`和`getView`,其中`getView`是最重要...
在本示例项目中,开发者可能已经实现了`PinnedHeaderListView`的自定义适配器,这个适配器需要处理分组数据,确保每个组的头部能在正确的位置显示。同时,适配器还需要考虑如何根据Lollipop的特性来实现动画效果,...
总的来说,"时间选择器"控件是一个结合了`ListView`功能和自定义滚动效果的组件,它的实现涉及到Android UI编程的多个方面,包括自定义视图、适配器机制、滚动监听以及动画效果等。开发者可以通过这样的实践提升对...
综上所述,实现一个无限循环卡片的 ViewPager 主要涉及自定义适配器、数据绑定、动画效果、滑动监听和性能优化等多个方面。通过巧妙的编程技巧和设计思路,我们可以为用户提供一个既美观又流畅的欢迎界面和引导页面...