3:BaseAdapter
这种Adapter写起来最复杂,但是可以实现的功能却是最多的,比如说在某一个listview中加入button的监听事件等等,这也是必备的掌握技能
base_main.xml
base_list.xml
这种Adapter写起来最复杂,但是可以实现的功能却是最多的,比如说在某一个listview中加入button的监听事件等等,这也是必备的掌握技能
package com.example.arrayada; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import android.app.Activity; import android.os.Bundle; import android.widget.ListView; import com.example.adapter.MyBaseAdapter; public class BaseActivity extends Activity{ private ListView listview = null; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.base_main); listview = (ListView) findViewById(R.id.balist); listview.setAdapter(new MyBaseAdapter(this, getData())); } private List<HashMap<String, Object>> getData(){ List<HashMap<String, Object>> list = new ArrayList<HashMap<String, Object>>(); HashMap<String, Object> map = new HashMap<String,Object>(); map.put("img", R.drawable.pkq); map.put("te1", "皮卡丘"); map.put("te2", "能力五星"); map.put("te3", "查询详细"); list.add(map); map = new HashMap<String,Object>(); map.put("img", R.drawable.jng); map.put("te1", "皮卡丘"); map.put("te2", "皮卡丘"); map.put("te3", "皮卡丘"); list.add(map); map = new HashMap<String,Object>(); map.put("img", R.drawable.xhl); map.put("te1", "皮卡丘"); map.put("te2", "皮卡丘"); map.put("te3", "皮卡丘"); list.add(map); map = new HashMap<String,Object>(); map.put("img", R.drawable.zz); map.put("te1", "皮卡丘"); map.put("te2", "皮卡丘"); map.put("te3", "皮卡丘"); list.add(map); return list; } }
base_main.xml
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" tools:context=".MainActivity" > <ListView android:id="@+id/balist" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_weight="1"> </ListView> <Button android:id="@+id/but3" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="baseadapter 的listview" /> </LinearLayout>
base_list.xml
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="horizontal" tools:context=".MainActivity" > <ImageView android:id="@+id/img2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_weight="1" android:src="@drawable/ic_launcher" /> <LinearLayout android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_weight="2" android:orientation="vertical" > <TextView android:id="@+id/text1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:textSize="23dp" android:text="TextView" /> <TextView android:id="@+id/text2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="TextView" /> </LinearLayout> <Button android:id="@+id/base_but" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_weight="1" android:text="Button" /> </LinearLayout>
package com.example.adapter; import java.util.HashMap; import java.util.List; import com.example.arrayada.R; import android.content.Context; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.BaseAdapter; import android.widget.Button; import android.widget.ImageView; import android.widget.TextView; public class MyBaseAdapter extends BaseAdapter{ private Context c =null; private List<HashMap<String, Object>> list; private LayoutInflater myInflater = null; public MyBaseAdapter(Context context,List<HashMap<String, Object>> baselist) { c = context; list = baselist; System.out.println(list.size()); } @Override public int getCount() { return list.size(); } @Override public Object getItem(int arg0) { return arg0; } @Override public long getItemId(int arg0) { return arg0; } @Override public View getView(int arg0, View arg1, ViewGroup arg2) { BaseHolder baseHolder = new BaseHolder(); if(arg1 == null){ myInflater = LayoutInflater.from(c); arg1 = myInflater.inflate(R.layout.base_list, null); baseHolder.img = (ImageView) arg1.findViewById(R.id.img2); baseHolder.textview1 = (TextView) arg1.findViewById(R.id.text1); baseHolder.textview2 = (TextView) arg1.findViewById(R.id.text2); baseHolder.button1 = (Button) arg1.findViewById(R.id.base_but); arg1.setTag(baseHolder); }else{ baseHolder = (BaseHolder) arg1.getTag(); } baseHolder.img.setImageResource((Integer) list.get(arg0).get("img")); baseHolder.textview1.setText((String) list.get(arg0).get("te1")); baseHolder.textview2.setText((String) list.get(arg0).get("te2")); baseHolder.button1.setText((String) list.get(arg0).get("te3")); return arg1; } private class BaseHolder{ ImageView img; TextView textview1; TextView textview2; Button button1; } }
- ListViewOfAdapter_四种_.zip (208.5 KB)
- 下载次数: 1
发表评论
-
2048源码(核心算法有,缺少几个anctionbar,以后补上)
2014-09-25 13:22 15402048游戏基本上有四部分组成, 1:主activity,包含 ... -
android动画效果
2014-09-24 18:06 1150前几天弄alertdialog和popupwindow的时候, ... -
AlertDialog和PopupWindow
2014-09-18 15:44 1903区别:AlertDialog是非阻塞式对话框:AlertDia ... -
基础篇--resources资源
2014-09-12 15:18 544最近一直在做java开发,偶尔敲点android代码,突然发现 ... -
多点触摸(图片缩放为例)
2014-09-01 17:22 664多点触摸的事件跟单点是大同小异的,上个图片缩放的代码,供大家参 ... -
Toast的多种样式(附带Notification)
2014-09-01 13:48 949Toast以前用的时候一直以为只有文字提示,偶然得知也有多种样 ... -
Android Adapter详解(2)
2014-08-15 14:05 10以前Adapter一直用的不是太好,经过长时间的浸淫,现在可以 ... -
BroadcastReceiver简介
2014-08-14 16:27 680BroadcastReceiver作为四大 ... -
关于Android的Service
2014-08-14 13:57 467说起来真是羞愧,以前手机经常开机的时候,不会有任何QQ消息通知 ... -
在开发过程中易出的错误
2014-08-13 16:53 4371:如果继承ListActivity,那么layout中必须有 ... -
多媒体的浅尝辄止
2014-08-12 15:57 541下面简单讲几种Android的多媒体技术,音频,视频,摄像头, ... -
Sqlite无脑使用
2014-08-11 14:56 892不会sqlite的人再也不用愁了,无脑使用,只要会粘贴复制就O ... -
android弹出框
2014-08-11 11:23 521不得不说,android自带的弹出框真心丑,而且还不好用,接下 ... -
android几种数据存储方式
2014-08-11 10:45 715android数据存储方式 1:SharedPreferen ... -
SQLiteOpenHelper和ContentProvider区别
2014-08-06 15:08 1445Android中操作数据库主要有两种方法:使用SQLiteOp ... -
xml文件解析SAX
2014-08-05 13:45 508xml文件解析:xml文件解析有四种方式, 1.DOM生成和解 ... -
Android不常用代码(1)
2014-07-31 18:07 550目录 1:Webview 2:js交互 1:Web ... -
系统窗口的调用
2014-07-31 15:46 477直接上代码吧,intent进行调用 @Override ... -
fragment简单实用及数据传递(2)
2014-07-31 15:13 2556FragmentTransaction 进行数据传递 imp ... -
ActionBar简介
2014-07-31 10:47 717Action bar是一个标识应用程序和用户位置的窗口功能,并 ...
相关推荐
Android Adapter 详解 Android Adapter 是 Android 开发中一个重要的组件,负责将数据绑定到用户界面中。今天,我们将深入探讨 Android Adapter 的原理和实现方式。 什么是 Android Adapter? Android Adapter 是...
### Android开发Adapter详解 #### 一、Adapter概念与作用 在Android开发中,Adapter是一种用于连接数据源和视图组件的重要桥梁。它主要用于处理数据集合与列表视图之间的交互,确保视图能够正确且高效地展示数据。...
适配器(Adapter)在Android开发中是一个非常重要的概念,它主要用于处理数据源和UI组件之间的数据流动和转换。适配器作为数据和UI之间的桥梁,能够把后端数据适配到前端的显示界面,使之能够按照一定的格式显示出来...
Android Adapter里面嵌套ListView实例详解 Android Adapter里面嵌套ListView实例详解是Android开发中的一种常见设计,即在一个ListView中嵌套另一个ListView。这种设计可以实现复杂的列表显示,但是需要特殊处理以...
本篇文章将深入讲解Android的ListView与Adapter的工作原理,并通过实例代码演示如何使用。 首先,ListView的主要职责包括两个方面:一是将数据填充到对应的视图(View)中,二是处理用户的交互事件,如点击事件。...
#### 三、Adapter 应用案例详解 1. **ArrayAdapter 示例** ```java public class ArrayAdapterActivity extends ListActivity { @Override public void onCreate(Bundle savedInstanceState) { super....
### Android之Adapter用法总结 #### 一、概念与作用 **Adapter** 是 Android 开发中连接后端数据和前端视图的一个关键组件。它作为数据和用户界面(UI)之间的桥梁,在Android开发中扮演着极其重要的角色。尤其是...
2. **列表(ListView)**:ListView用于显示可滚动的项目列表。在Activity中,你需要创建一个ListView实例,并将其添加到布局中。接着,你需要为ListView分配一个Adapter,如ArrayAdapter,来填充数据。此外,可以...
**Android ViewPager 使用详解** ViewPager是Android开发中一个非常重要的组件,它允许用户通过左右滑动来切换不同的页面,常用于实现应用的滑动导航或展示多个相似内容的页面。在本篇文章中,我们将深入探讨...
Android 优化技术详解 Android 优化技术是指通过合理的编程和设计来提高 Android 应用程序的性能、内存和用户体验的一系列技术。下面是 Android 优化技术的详细解释: UI 布局优化 Android 的 UI 界面布局的优化...
同时,讲解了LinearLayout、RelativeLayout和ConstraintLayout等布局管理器的用法,以及如何使用Adapter将数据绑定到ListView和GridView等视图组件。此外,还涉及了触摸事件处理和动画效果的实现。 第14章:Android...
【Android View详解第三部分】 在Android开发中,View是一个核心概念,它代表用户界面上的可视化元素。在本部分的讲解中,我们将深入探讨几个重要的View组件:TabHost、ScrollView、ListView、ListActivity、...
2. **Adapter原理** - **Adapter**:Adapter是ListView与数据源之间的桥梁,它负责将数据转化为ListView可显示的View。Adapter有多种类型,如ArrayAdapter、SimpleAdapter等,开发者可以根据需求选择或自定义...
2. android:dropDownVerticalOffset:设置列表框的竖直距离 3. android:dropDownSelector:列表框被选中时的背景 4. android:dropDownWidth:设置下拉列表框的宽度 5. android:gravity:设置里面组件的对其方式 6. ...
**Android蓝牙API详解** 在Android平台上,蓝牙技术是设备间通信的重要途径,广泛应用于数据传输、设备配对、物联网(IoT)等场景。Android提供了丰富的蓝牙API,使得开发者能够轻松实现蓝牙功能,包括经典蓝牙...
上篇Android RecyclerView 详解(1)—线性布局 记录了下RecyclerView的使用方法,并且讲述了线性布局列表的使用方法,在此基础上加上了万能分割线,支持颜色分割线和图片分割线,同时支持对分割线设置线宽。 这篇...
在Android中,我们通常通过Adapter来连接ListView和数据源,Adapter负责将数据转化为可显示的视图。 1. 创建Adapter:自定义一个继承自BaseAdapter的类,实现其中的四个关键方法: - getCount():返回数据源的大小...