ArrayAdapter,SimpleAdapter,BaseAdapter
来源:互联网 发布:windows pe镜像下载 编辑:程序博客网 时间:2024/06/05 06:45
自从放寒假,以及过年期间,一直没有好好的敲代码,也没有好好的看书,导致现在已经对原来学的东西忘记的太严重了,深深地感觉到脑子不够用了,决定重温下原来的基础。先总结下几个简单的适配器,ArrayAdapter,SimpleAdapter,BaseAdapter的用法。1 ArrayAdapter数组适配器,这是最简单的适配器,基本上是用于只显示文本。
public class ArrayListDemo extends Activity { private ListView listView; private List<String> datas; private ArrayAdapter<String> adapter; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_arraylist); listView = (ListView) findViewById(R.id.listview); getDatas(); adapter = new ArrayAdapter<>(this, android.R.layout.simple_list_item_1, datas); listView.setAdapter(adapter); } public List<String> getDatas() { datas = new ArrayList<>(); for (int i = 0; i < 20; i++) { datas.add("item" + i); } return datas; }}
2 SimpleAdapter虽然说这个叫做SimpleAdapter, 但是却不是很简单的,可以比ArrayAdapter有更广泛的作用,可用于显示图片与文本组合的较复杂的列表。
public class MainActivity extends AppCompatActivity { private ListView listView; private SimpleAdapter adapter; private List<Map<String, Object>> data; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); listView = (ListView) findViewById(R.id.listview); data = new ArrayList<>(); for (int i = 0; i < 20; i++) { Map<String, Object> map = new HashMap<>(); map.put("pic", R.mipmap.ic_launcher); map.put("string", "数据"+i); data.add(map); } adapter = new SimpleAdapter(this, data, R.layout.simple_item, new String[]{"pic", "string"}, new int[]{R.id.image, R.id.text}); listView.setAdapter(adapter); }}
3 BaseAdapter 这个相对来说。就有更加广泛的用途了,能用于更加复杂的列表。
public class TestBaseAdapter extends Activity { private ListView listView; private MyBaseAdapter adapter; private List<ItemBean> beans; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.listview_baseadapter); listView = (ListView) findViewById(R.id.listview); getData(); adapter = new MyBaseAdapter(this, beans); listView.setAdapter(adapter); } private void getData() { beans = new ArrayList<>(); for (int i = 0; i < 20; i++) { beans.add(new ItemBean(R.mipmap.ic_launcher, "title" + i, "content" + i)); } }}
ItemBean 存储列表项的数据Bean
public class ItemBean { private int imageResIdId; private String mTitle; private String mContext; public ItemBean(int imageResIdId, String mTitle, String mContext) { this.imageResIdId = imageResIdId; this.mTitle = mTitle; this.mContext = mContext; } public int getImageResIdId() { return imageResIdId; } public void setImageResIdId(int imageResIdId) { this.imageResIdId = imageResIdId; } public String getmTitle() { return mTitle; } public void setmTitle(String mTitle) { this.mTitle = mTitle; } public String getmContext() { return mContext; } public void setmContext(String mContext) { this.mContext = mContext; }}
Base适配器
public class MyBaseAdapter extends BaseAdapter { private List<ItemBean> data; private LayoutInflater inflater; public MyBaseAdapter(Context context, List<ItemBean> mdata) { data = mdata; inflater = LayoutInflater.from(context); } @Override public int getCount() { return data.size(); } @Override public Object getItem(int position) { return data.get(position); } @Override public long getItemId(int position) { return position; } @Override public View getView(int position, View convertView, ViewGroup parent) { ViewHolder viewHolder; if (convertView == null) { viewHolder = new ViewHolder(); convertView = inflater.inflate(R.layout.item, null); viewHolder.imageView = (ImageView) convertView.findViewById(R.id.image); viewHolder.title = (TextView) convertView.findViewById(R.id.title); viewHolder.content = (TextView) convertView.findViewById(R.id.content); convertView.setTag(viewHolder); } else { viewHolder = (ViewHolder) convertView.getTag(); } viewHolder.imageView.setImageResource(data.get(position).getImageResIdId()); viewHolder.title.setText(data.get(position).getmTitle()); viewHolder.content.setText(data.get(position).getmContext()); return convertView; } class ViewHolder { private ImageView imageView; private TextView title; private TextView content; }}
效果
总结:基本上只显示文本的用ArrayAdapter比较简单些 ,再稍微复杂的有显示图片的可以用SimpleAdapter。基本上BaseAdapter是万能的,但是因为写适配器比较麻烦一些。所以,很贱的列表优先考虑ArrayAdapter和SimpleAdapter.
0 0
- ArrayAdapter,SimpleAdapter,BaseAdapter
- listView、baseAdapter、arrayAdapter、simpleAdapter
- ArrayAdapter,SimpleAdapter,BaseAdapter
- ArrayAdapter、SimpleAdapter和BaseAdapter
- arrayadapter simpleadapter baseadapter
- BaseAdapter ArrayAdapter SimpleCursorAdapter SimpleAdapter BaseExpandableListAdapter
- android---------ArrayAdapter、SimpleAdapter和BaseAdapter
- android-----ArrayAdapter、SimpleAdapter和BaseAdapter
- GridView && ArrayAdapter && SimpleAdapter && BaseAdapter【Android】
- Android中SimpleAdapter,ArrayAdapter和BaseAdapter详解
- Android中SimpleAdapter,ArrayAdapter和BaseAdapter小记
- Android中SimpleAdapter,ArrayAdapter和BaseAdapter详解
- ArrayAdapter, SimpleAdapter 和BaseAdapter的使用范例
- ListView (3) 之适配器 ArrayAdapter/SimpleAdapter/BaseAdapter
- Android中ArrayAdapter、SimpleAdapter、BaseAdapter总结
- Android中SimpleAdapter,ArrayAdapter和BaseAdapter
- Android之ListView使用方法-ArrayAdapter-SimpleAdapter-BaseAdapter
- android中的适配器(ArrayAdapter,SimpleAdapter,BaseAdapter)
- 更新ListView的几种方法
- AFN 设置请求数据类型
- 【慕课笔记】第四章 JAVA中的集合框架(上) 第7节 学生选课—课程修改
- js简单函数运用
- linux下源码安装GCC
- ArrayAdapter,SimpleAdapter,BaseAdapter
- (超高性价比)有了PLC上网神器,PLC远程监视,PLC远程监控,构建工业物联网很简单
- C#多线程学习(五) 多线程的自动管理(定时器)
- Android之PowerManager&BatteryManager
- java 反射 getDeclaredField和getField的区别
- 自定义右侧滑动栏 仿联系人
- 32位linux系统下mongodb安装出现的问题
- Qt使用教程之使用Qt Quick UI表单(三)
- 一起看代码来玩玩QT之06EventFilter (事件过滤)