- 浏览: 186347 次
- 性别:
- 来自: 广州
文章分类
最新评论
-
Allen_J_Will:
...
python学习,第四天笔记 -
大头K:
qindongliang1922 写道你用的啥IDE工具楼主
...
python学习,第三天笔记 -
qindongliang1922:
你用的啥IDE工具楼主
python学习,第三天笔记 -
大头K:
hksfho 写道你好,怎樣顯不坐標?你说的是在地图上显示坐标 ...
基于百度地图实现的实时定位功能(含项目代码) -
hksfho:
你好,怎樣顯不坐標?
基于百度地图实现的实时定位功能(含项目代码)
ArrayList动态删除 自定义Adapter
上网收集了一些资料,都是从别人的代码中修改过来,一起分享。
1.先把所要的xml文件贴出来
a)listview.xml
b)base_adapter_item.xml
c)activity: DeleteListView.java
d)自定义适配器:ListAdapter.java
上网收集了一些资料,都是从别人的代码中修改过来,一起分享。
1.先把所要的xml文件贴出来
a)listview.xml
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical" > <ListView android:id="@+id/listview_list" android:layout_width="fill_parent" android:layout_height="wrap_content" /> </LinearLayout>
b)base_adapter_item.xml
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="horizontal" > <ImageView android:id="@+id/base_item.image" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginRight="20dp" /> <TextView android:id="@+id/base_item_text" android:layout_width="wrap_content" android:layout_height="wrap_content" /> </LinearLayout>
c)activity: DeleteListView.java
package com.fx; import java.util.ArrayList; import java.util.List; import java.util.Map; import android.app.Activity; import android.os.Bundle; import android.view.View; import android.widget.AdapterView; import android.widget.ListView; import android.widget.Toast; import android.widget.AdapterView.OnItemClickListener; import com.fx.adapter.ListAdapter; /** * @author liucanwen * @since 2012-08-10 * 联系qq 124597202 */ public class DeleteListView extends Activity { private ArrayList<String> conList = new ArrayList<String>(); private ListView listView = null; private List<Map<String, String>> list = new ArrayList<Map<String, String>>(); ListAdapter listAdapter; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.listview); initsView();// 调用初始化方法 listView.setOnItemClickListener(new OnItemClickListener() { @Override public void onItemClick(AdapterView<?> arg0, View arg1, int position, long arg3) { Toast.makeText(DeleteListView.this, arg1.getId()+"", Toast.LENGTH_LONG) .show(); listAdapter.removeItem(position); } }); } // 初始化方法 public void initsView() { conList.add("图片1"); conList.add("图片2"); conList.add("图片3"); conList.add("图片4"); conList.add("图片5"); conList.add("图片6"); listView = (ListView) findViewById(R.id.listview_list);// 初始化ListView组件 // 通过BaseAdapter方法获取ListView组件内容 listAdapter = new ListAdapter(this,R.drawable.icon,conList); listView.setAdapter(listAdapter); } }
d)自定义适配器:ListAdapter.java
package com.fx.adapter; import java.util.ArrayList; import java.util.HashMap; import java.util.Map; import android.content.Context; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.BaseAdapter; import android.widget.ImageView; import android.widget.TextView; import com.fx.R; /** * 自定义适配器 * @author liucanwen * @since 2012-08-10 * 联系qq 124597202 */ public class ListAdapter extends BaseAdapter { private Context context; int a; ArrayList<String> list; LayoutInflater lay; private Map<Integer, View> map = new HashMap<Integer, View>(); public ListAdapter(Context context, int a, ArrayList<String> list) { this.context = context; this.a = a; this.list = list; lay = LayoutInflater.from(this.context); } @Override public int getCount() { // TODO Auto-generated method stub return list.size(); } @Override public Object getItem(int position) { // TODO Auto-generated method stub return position; } @Override public long getItemId(int position) { // TODO Auto-generated method stub return position; } //删除 public void removeItem(int id) { list.remove(id); notifyDataSetInvalidated(); notifyDataSetChanged(); } @Override public View getView(int position, View convertView, ViewGroup parent) { // TODO Auto-generated method stub convertView = map.get(position); ViewHolder viewHolder; if (convertView == null) { convertView = lay.inflate(R.layout.base_adapter_item, null); viewHolder = new ViewHolder(); viewHolder.textView = (TextView) convertView .findViewById(R.id.base_item_text); viewHolder.imageView = (ImageView) convertView .findViewById(R.id.base_item_image); map.put(position, convertView); convertView.setTag(viewHolder); convertView.setId(position + 21); } else { viewHolder = (ViewHolder) convertView.getTag(); } viewHolder.imageView.setImageResource(a); viewHolder.textView.setText(list.get(position)); return convertView; } public class ViewHolder { TextView textView; ImageView imageView; } }
- DeleteListView.rar (47.8 KB)
- 下载次数: 17
发表评论
-
android studio 编译问题
2015-08-12 17:58 7211、今天在用AS直接调试安装应用的时候,发现安装的debug应 ... -
BASE64加密解密
2014-08-19 17:59 0import java.io.ByteArrayOutputS ... -
在EditText和TextView显示表情图片(类似QQ表情)
2014-08-04 13:25 1644通过重写EditText和TextView,在EditText ... -
java修改目录所有文件名
2014-07-15 13:03 1883前言: 一直遇到一个问题,android在打包的时候,有时会涉 ... -
webview清除cookie
2014-07-14 15:54 4207前言: 由于项目需要,webview需要与app进行交互,其实 ... -
按正方形裁切图片和图片加边框
2014-06-07 09:13 19101.按正方形裁切图片: /** * 按正方形裁切图片 ... -
解决部分android手机照片被系统自动旋转
2014-05-21 14:13 1804使用某星手机有为应用的图库添加图片时,发现照片已被旋转,APP ... -
关于拍完照或者保存图片,无法在相册上显示问题
2014-05-05 17:43 934场景:拍完照或者保存图片到SDCard时,无法马上在相册上显示 ... -
Universal-Image-Loader 内存占用
2014-04-30 23:24 1540前言:之前项目一直使用Universal-Image-Load ... -
Fragment already added 解决方法
2014-04-22 11:22 13183最近项目上遇到一个问题: 找了很久,尼玛终于找到方法解决 ... -
非官方调用新浪微博
2014-04-18 09:19 1909很多情况,我们都需要用户关注我们的官方微博,现在提供两种办法展 ... -
类似上下滚动切换广告牌效果实现
2014-04-18 06:39 0看到需求时,上下滚动切换,第一反应就是VerticalView ... -
关于刷新自定义View
2014-04-18 06:34 822因为项目需要,需要在自定义View可见之后再动态变化宽度。 ... -
保存网络图片到手机上
2014-04-16 12:00 952// 保存图片到手机端 public static bool ... -
ListView快速定位第一行
2014-04-15 16:23 1039if (Build.VERSION.SDK_INT < ... -
调用手机相机实现拍照、剪裁、保存图片到手机(含github源码地址)
2014-03-20 16:31 5946调用手机相机实现拍照、剪裁图片、并保存图片到手机 先看效果图 ... -
FragmentTabHost切换Fragment时避免UI重新加载
2014-03-12 14:27 4531用FragmentTabHost + Fragment 可以实 ... -
Gridview 去掉橙色点击响应效果
2014-03-12 11:19 948一行代码搞定: gridView.setSelector(ne ... -
如何在service里面弹出对话框
2014-03-10 00:03 3204先给一个需求:需要在service里面监听短信的接收,如果接收 ... -
ViewFlipper 3D旋转动画实现 界面切换
2014-03-08 00:46 1707先来看看效果: 简单介绍一下,两个界面,以水平中线旋转18 ...
相关推荐
为了实现更加灵活和丰富的界面展示,我们通常需要对ListView进行自定义,这涉及到自定义Adapter的使用。自定义Adapter允许我们根据需求定制ListView的每一项视图,以适应不同的数据结构和界面设计。 首先,我们需要...
3. 自定义Adapter:讲解如何创建自定义的Adapter来绑定数据和视图。 4. 数据绑定:如何将数据模型与列表项视图关联起来。 5. 动态加载和滚动优化:讨论如何处理数据的动态加载,以及优化滚动性能的方法。 最后,...
3. **自定义Adapter的步骤**: - 创建一个新的Adapter类,继承自适当的Adapter基类。 - 实现`getView()`方法,该方法负责根据数据创建视图。通常,你会在这里使用convertView参数来优化性能,通过复用不再使用的...
在Java代码中,创建自定义Adapter类,注入数据源(通常是ArrayList,其中Object包含图片资源ID和文字信息)。然后,在Spinner的初始化中设置这个自定义Adapter。 6. **数据绑定** 在`getView()`方法内,使用...
Adapter就像一个桥梁,连接数据源(如ArrayList)和ListView的每一个列表项。在本实例中,我们可能会看到一个自定义的Adapter类,例如`MyCustomAdapter`,这个类继承自`BaseAdapter`,并重写了`getCount()`、`...
在Android中,常见的Adapter有ArrayAdapter、SimpleAdapter等,开发者可以根据需求自定义Adapter。 在本实例中,我们可能使用了自定义Adapter,该Adapter不仅需要包含数据,还需要包含一个根据拼音首字母排序的逻辑...
创建自定义Adapter需要继承BaseAdapter或ArrayAdapter,并重写其中的方法。主要涉及以下四个方法: - `getCount()`: 返回列表项的数量。 - `getItem(int position)`: 根据位置获取列表项的数据对象。 - `...
这可以是ArrayList或其他集合类型,关键是要能够方便地添加、删除和获取数据。 4. **视图复用**:为了提高性能,通常会使用convertView参数来复用已创建的视图。如果convertView不为空,我们需要检查它是否适合当前...
首先,ArrayList是一个动态数组,它允许存储一组有序的元素。在Android中,我们通常用它来存储自定义对象,如用户信息、商品详情等。为了实现关键字查询,我们需要对ArrayList中的每个对象进行遍历,检查其属性(如...
10. **自定义Adapter的其他扩展**:例如,使用CursorAdapter绑定SQLite数据库,或者使用ArrayAdapter绑定数组或ArrayList。 在源码层面,ListView的滚动机制、视图复用以及与Adapter的交互是其核心部分。了解这些...
1. 自定义Adapter:处理图片显示和选中状态。 2. Activity或Fragment:承载相册界面,处理用户交互和回调。 3. 数据结构:用于存储选中图片的Uri列表。 4. 权限请求:由于访问媒体库需要读取存储权限,因此可能包含...
首先,Adapter是Android系统提供的一种接口,它的主要职责是将数据源(如ArrayList)中的数据转换为可以在View中显示的格式。在实际开发中,我们常常会遇到需要展示不同类型数据的情况,例如在一个列表中既有图片又...
在Android开发中,自定义视图是提升用户体验和界面独特性的重要手段。本文将深入探讨如何创建一个自定义标签选择器TagView,该组件通常用于显示可选或已选择的标签,常见于分类筛选或者设置界面。我们将分析其源码,...
"Android Spinner图文混排源码"文件应该是示例项目的源代码,包括自定义Adapter的实现、数据结构的设计以及Spinner的配置等。通过查看这些源码,开发者可以学习如何在实际项目中实现相似的功能。 总之,这个压缩包...
本文将详细解析如何在Android应用中实现自定义单选、多选对话框以及PopWindow窗口,并通过实例源码进行深入探讨。 一、自定义单选对话框(RadioGroup) 在Android中,单选对话框通常使用`AlertDialog`配合`...
3. 自定义Adapter:编写自定义Adapter,实现数据与视图的映射。在getView()方法中,根据数据生成单元格视图并添加动画。 4. 事件处理:在Adapter或GridView上设置OnClickListener或OnItemClickListener,监听用户对...
在这个例子中,源码可能会包含自定义Adapter的实现。 2. **ViewHolder模式**:为了提高ListView的滚动性能,通常会使用ViewHolder设计模式。ViewHolder是一个简单的类,持有列表项视图中各个组件的引用。这样,在`...
1. 自定义Adapter:为了改变Spinner的显示样式,可以自定义Adapter,比如重写getView方法,为每个项目设置不同的背景色、字体等。 2. 自定义布局:可以通过设置 Spinner的android:popupBackground属性来自定义下拉...