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

自定义适配器的常用思路

 
阅读更多
自定义适配器的常用思路: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);
}

});
分享到:
评论

相关推荐

    Android列表实现(3)_自定义列表适配器思路及实现代码

    2. **数据绑定**:通过自定义适配器,可以方便地将数据模型与视图元素绑定,便于数据更新和管理。 3. **复用性**:创建的自定义适配器可以应用于多个相似场景,提高代码的可重用性。 **自定义列表适配器的基本实现*...

    Android自定义adapter的listview

    在Android开发中,ListView是一种常用的组件,用于展示可滚动的多行数据列表。为了实现更加灵活和丰富的界面展示,我们通常需要对ListView进行自定义,这涉及到自定义Adapter的使用。自定义Adapter允许我们根据需求...

    安卓自定义控件相关-BetterSpinner自定义Spinner控件.rar

    6. **自定义适配器**: 开发者可以使用自定义的ArrayAdapter或者其他类型的适配器,如CursorAdapter,来实现复杂的数据源绑定。 7. **事件监听**: 提供了方便的监听器接口,可以监听到用户的选择变化,以便进行...

    一个列表对应多种Item风格

    总之,"一个列表对应多种风格的Item"这一知识点涵盖了Android开发中关于ListView或RecyclerView的自定义适配器、多类型Item定义以及视图复用等核心概念,对于创建复杂且动态的列表界面至关重要。通过理解和实践这些...

    listview上拉刷新.zip

    这一过程需要自定义适配器(Adapter)配合,以便在新数据加载完成后更新ListView的内容。 在源码学习中,你需要关注以下几个关键点: 1. **SwipeRefreshLayout**:这是Android SDK中提供的一种布局,用于实现上拉...

    Android自定义Adapter的ListView的思路及代码

    下面我们将详细探讨自定义Adapter与ListView结合使用的思路及代码实现。 首先,自定义Adapter的关键在于它能够根据数据集生成相应的视图,并将这些视图添加到ListView中。数据集通常是一个包含多个条目的集合,每个...

    HSlowListView,项目视图.zip

    6. **自定义适配器**:HSlowListView允许开发者自定义适配器,适应各种复杂的数据结构和视图需求。 7. **滑动事件优化**:优化滑动事件的处理,确保滑动的平滑性,提高用户的交互体验。 8. **滚动性能监控**:内置...

    GListView(自己编写的ListView控件)

    2. **自定义适配器**:GListView允许开发者创建自定义的适配器,可以更自由地控制列表项的布局和数据绑定,支持多种类型的列表项,如头尾视图、分割线等。 3. **触摸事件处理**:GListView可能提供了更加丰富的触摸...

    安卓listview相关相关-ExpandListView滑动到顶端时固定.zip

    1. **自定义适配器(Adapter)**:通过修改默认的ExpandableListAdapter,实现一个自定义适配器,添加逻辑在滑动到顶部时,将头部视图分离并固定在顶部。这通常涉及到对滚动事件的监听和视图状态的管理。 2. **使用...

    Android应用源码之MyViewPager1.zip

    2. **自定义适配器**:查看是否创建了一个新的适配器类,用于加载和管理`ViewPager`中的页面内容。 3. **页面转换逻辑**:查找`PageTransformer`的实现,看是否添加了特殊效果,如3D翻转、淡入淡出等。 4. **扩展...

    Android ListView滑动删除

    1. **自定义适配器**: - 首先,我们需要扩展BaseAdapter或ArrayAdapter,创建一个新的适配器类。在这个适配器中,我们需要维护一个数据列表,记录每个条目的状态(如是否被选中、是否可删除等)。 - 在适配器的`...

    Android ListView 无限循环滚动源码

    为了解决这个问题,开发者通常需要自定义适配器和滚动逻辑来实现这种效果。下面我们将深入探讨如何通过源码实现Android ListView的无限循环滚动功能。 首先,我们需要创建一个自定义的Adapter,这个Adapter需要管理...

    YCRefreshView:自定义支持上拉加载更多,拖动刷新,可以自定义标题和底部,可以添加多个HeaderView,使用一个原生recyclerView就可以搞定复杂的界面。支持自由切换状态【加载中,加载成功,加载扩展功能【支持长按拖拽,侧滑删除】,轻量级,可以选择性添加。多年前已经使用于前项目投资界,新芽,沙丘大学等APP正式项目中!持续更新……

    5.常用api介绍 5.1状态切换方法说明 5.2 viewHolder方法说明 5.3适配器方法说明 5.4分割线方法说明 5.5 swipe侧滑方法说明 5.6其他api说明 6.recyclerView的wiki文档【更新中】 6.1封装库部分思路介绍

    listview,gridview滑动的删除

    在自定义适配器中,你需要重写以下几个关键方法: 1. `getView(int position, View convertView, ViewGroup parent)`: 这是Adapter的核心方法,负责创建或复用列表项的视图。在这里,我们需要实例化SwipeLayout,并...

    CircularViewPager,android的圆形viewpager.zip

    3. **创建适配器**:根据项目需求创建自定义适配器,实现数据的加载和页面的创建。 4. **设置适配器**:在Activity或Fragment中,实例化CircularViewPager并调用`setAdapter()`方法设置适配器。 5. **配置属性**:...

    粗仿寺库分类ListView动画

    - 数据源通常来自ArrayList或其他集合类,通过继承BaseAdapter或使用已有的ArrayAdapter、CursorAdapter等来创建自定义适配器,将数据转换为ListView可显示的视图。 2. **ListView动画原理** - 在ListView中添加...

    android SAX解析String类型 XML 字符串

    为了显示解析出来的XML数据,我们需要创建一个继承自`BaseAdapter`的自定义适配器,将数据映射到ListView的每一项。适配器通常包含四个方法:`getCount`、`getItem`、`getItemId`和`getView`,其中`getView`是最重要...

    安卓listview相关相关-一个实现了PinnedHeaderListView的库并提供了Lollipop上联系人效果的demo.rar

    在本示例项目中,开发者可能已经实现了`PinnedHeaderListView`的自定义适配器,这个适配器需要处理分组数据,确保每个组的头部能在正确的位置显示。同时,适配器还需要考虑如何根据Lollipop的特性来实现动画效果,...

    时间选择器

    总的来说,"时间选择器"控件是一个结合了`ListView`功能和自定义滚动效果的组件,它的实现涉及到Android UI编程的多个方面,包括自定义视图、适配器机制、滚动监听以及动画效果等。开发者可以通过这样的实践提升对...

    安卓欢迎界面引导页面viewpager相关-无限循环卡片ViewPager.rar

    综上所述,实现一个无限循环卡片的 ViewPager 主要涉及自定义适配器、数据绑定、动画效果、滑动监听和性能优化等多个方面。通过巧妙的编程技巧和设计思路,我们可以为用户提供一个既美观又流畅的欢迎界面和引导页面...

Global site tag (gtag.js) - Google Analytics