自定义适配器的常用思路: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自定义适配器
自定义适配器学习小例子,参考学习!注重的不是例子,是掌握适配器的工作原理!
适合学习listView 和自定义适配器朋友使用。 有点击item 触发传值. 标题一》》》》》内容一 标题二》》》》》内容二 可以实现这种点击这种效果
Android自定义适配器,能够直接运行
SpinnerTest使用自定义适配器,使用了baseadapter
采用ListView控件加自定义适配器实现listview列表控件,代码简单,逻辑清楚,可扩展性强,并且解决了OOM,亲测绝对可以使用
上一篇文章介绍了ListFragment,其中的ListView并没有自定义适配器,实际上在实际开发中常会用到自定义适配器,是实现更复杂的列表数据展示。所以这篇文章增加了自定义适配器,来进行ListView数据的展示
Android实现自定义适配器的ExpandableListView示例,准备一级列表中显示的数据:2个一级列表,分别显示"group1"和"group2",准备第一个一级列表中的二级列表数据:两个二级列表,分别显示"childData1"和"childData2",...
NULL 博文链接:https://sunzone.iteye.com/blog/1998131
简单的listview自定义适配器的使用方法,注释很清晰,也有对应的博文介绍
Android 基于自定义适配器的ExpandableListView源码
移动开发小白树懒,在努力的学习android基础.为自己学习的知识理一理思路.便于熟能生巧.
Android自定义适配器的编写
自定义适配器,ListView详细,如何获取数据,和删除数据。动态改变。无聊时候写的,很好用
android中自定义适配器BaseAdapter
基于自定义适配器的ExpandableListView
简单的例子,实现了最常用的itme的优化,实现自定义Adapter,例子中有几个小图片,详细大家会很喜欢,在就是新手的一目了然,里面的注释很详细.
Android 基于自定义适配器的ExpandableListView源码.zip源码资源下载Android 基于自定义适配器的ExpandableListView源码.zip源码资源下载
自定义适配器 配合listView使用 ,将数据展示在列表中 进阶3
安卓Android源码——基于自定义适配器的ExpandableListView源码.zip