ArrayList动态删除 自定义Adapter
上网收集了一些资料,都是从别人的代码中修改过来,一起分享。
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;@Overridepublic void onCreate(Bundle savedInstanceState){super.onCreate(savedInstanceState);setContentView(R.layout.listview);initsView();// 调用初始化方法listView.setOnItemClickListener(new OnItemClickListener(){@Overridepublic 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);}@Overridepublic int getCount(){// TODO Auto-generated method stubreturn list.size();}@Overridepublic Object getItem(int position){// TODO Auto-generated method stubreturn position;}@Overridepublic long getItemId(int position){// TODO Auto-generated method stubreturn position;}//删除public void removeItem(int id){list.remove(id);notifyDataSetInvalidated();notifyDataSetChanged();}@Overridepublic View getView(int position, View convertView, ViewGroup parent){// TODO Auto-generated method stubconvertView = 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;}}

更多相关文章

  1. Android(安卓)Gallery 的简单使用
  2. Android:TextView显示富文本信息
  3. Android[初级教程]第四篇 Spinner控件
  4. Android(安卓)登陆页面 图片验证码
  5. Android音频开发之使用OpenSL ES API
  6. java获取http:图片下载代码——android基础编
  7. android实用技巧:android实现listview异步加载图片
  8. Android(安卓)客户端通过HTTP POST发布图片和文字源代码
  9. android 显示16色的图片:输入用颜色矩阵,显示对应的16色位图

随机推荐

  1. Android Studio连接STF失效
  2. android弹出对话框
  3. Android高效加载大图、多图解决方案,有效
  4. android基础入门(一)――搭建android开发
  5. 如何看待安卓未来的发展
  6. 二维码的生成细节和原理
  7. 我的DIY Android 之旅--gps框架及简析
  8. Android特色开发之语音识别
  9. iWidsets公告
  10. [android开发笔记]Unable to resolve tar