简单ListView列表,就用简单的写法
来源:互联网 发布:js怎么获取数据库数据 编辑:程序博客网 时间:2024/06/04 19:02
有些时候,我们的列表是简单的,甚至单一的item,没有太多交互,但是没写一个界面都写一次adapter,实在感觉有点费事,所以必要时可以抽出来
BaseAdapter
package com.forens.xuan.forkit.adapter;import android.util.Log;import android.view.View;import android.view.ViewGroup;import android.widget.BaseAdapter;import com.forens.xuan.forkit.viewholder.BaseViewHolder;import java.util.List;/** * Project_Name: ForKit * Copyright: * Created: dake.xuan on 2017/4/26 10:38 * E-mail: dake.xuan@g-emall.com * Desc: */public class ForAdapter<T> extends BaseAdapter{ private List<T> tList; private BaseViewHolder viewHolder; public ForAdapter(BaseViewHolder viewHolder) { this.viewHolder = viewHolder; } @Override public int getCount() { if (tList != null) return tList.size(); else return 0; } public void settList(List<T> tList) { this.tList = tList; } @Override public Object getItem(int position) { return tList.get(position); } @Override public long getItemId(int position) { return 0; } @Override public View getView(int position, View convertView, ViewGroup parent) { if (convertView == null) { if(viewHolder!=null){ convertView=viewHolder.onViewCread(position,convertView,parent); convertView.setTag(viewHolder); viewHolder.onBindViewData(position,tList.get(position)); }else { Log.e("ForAdapter","ViewHolder is null"); } }else { BaseViewHolder viewHolder2= (BaseViewHolder) convertView.getTag(); viewHolder2.onBindViewData(position,tList.get(position)); } return convertView; }}
package com.forens.xuan.forkit.viewholder;import android.view.View;import android.view.ViewGroup;/** * Project_Name: ForKit * Copyright: * Created: dake.xuan on 2017/4/26 11:38 * E-mail: dake.xuan@g-emall.com * Desc: */public abstract class BaseViewHolder<T> { public abstract View onViewCread(int position, View convertView, ViewGroup parent); public abstract void onBindViewData(int position,T t1);}
那么 每次写一个列表界面就只需要写一个ViewHolder
package com.forens.xuan.forkit.viewholder;import android.content.Context;import android.view.LayoutInflater;import android.view.View;import android.view.ViewGroup;import android.widget.TextView;import com.forens.xuan.forkit.R;import com.forens.xuan.forkit.bean.BaseBean;/** * Project_Name: ForKit * Copyright: * Created: dake.xuan on 2017/4/26 11:34 * E-mail: dake.xuan@g-emall.com * Desc: */public class TestViewHolder extends BaseViewHolder<BaseBean>{ private TextView textViewName; private Context context; public TestViewHolder(Context context) { this.context = context; } @Override public View onViewCread(int position, View convertView, ViewGroup parent) { convertView = LayoutInflater.from(context).inflate(R.layout.item_test, parent, false); textViewName= (TextView) convertView.findViewById(R.id.tv_test_name); return convertView; } @Override public void onBindViewData(int position, BaseBean t1) { textViewName.setText(t1.getName()); }}
然后使用它
package com.forens.xuan.forkit;import android.support.v7.app.AppCompatActivity;import android.os.Bundle;import android.widget.ListView;import com.forens.xuan.forkit.adapter.ForAdapter;import com.forens.xuan.forkit.bean.BaseBean;import com.forens.xuan.forkit.viewholder.TestViewHolder;import java.util.ArrayList;import java.util.List;public class TestListViewActivity extends AppCompatActivity { private ListView mListView; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_test_list_view); mListView= (ListView) findViewById(R.id.lv_test_listView1); ForAdapter<BaseBean> adapter=new ForAdapter<>(new TestViewHolder(this)); List<BaseBean> list=new ArrayList<>(); for (int i=0;i<10;i++){ BaseBean baseBean=new BaseBean(); baseBean.setName("名字"+i); list.add(baseBean); } adapter.settList(list); mListView.setAdapter(adapter); }}
0 0
- 简单ListView列表,就用简单的写法
- ListView 分页简单写法
- Android ListView 列表控件的简单使用
- Android ListView 列表控件的简单使用
- 简单实用的列表ListView 事件
- LIstview-列表控件的简单实现ArrayAdapter
- ListView适配器的列表简单使用
- ListView中ViewHolder的更简单的一种写法
- 简单的日历表写法
- makefile的简单写法
- 简单的日志写法
- tab的简单写法
- SlidingMenu的简单写法
- 简单pipeline的写法
- 留言板的简单写法
- 简单实现listview可选择的列表(不用重写adapter)
- Android中通过ListView的实现简单新闻列表
- Android中通过ListView的实现简单新闻列表
- storm kafka插件使用案例
- Google protocol buffer简介
- ElasticSearch 增删改查
- Attacks on TCP/IP Protocols (Task2) ICMP Redirect Attack
- 掌握技能的学习整理规划
- 简单ListView列表,就用简单的写法
- WINDOWS访问SAMBA提示没有权限
- Html和css常用个别英语单词
- 常用排序算法代码整理
- c语言与文件处理基础
- 刷新和加载更多
- javaSE_8系列博客——Java语言的特性(二)--高级语言的基础知识(4)-- 变量和数组
- go语言测试test
- ~使用两个队列实现一个栈~