ArrayList动态删除 自定义Adapter (附源码)
16lz
2021-01-26
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;@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;}}
更多相关文章
- Android(安卓)Gallery 的简单使用
- Android:TextView显示富文本信息
- Android[初级教程]第四篇 Spinner控件
- Android(安卓)登陆页面 图片验证码
- Android音频开发之使用OpenSL ES API
- java获取http:图片下载代码——android基础编
- android实用技巧:android实现listview异步加载图片
- Android(安卓)客户端通过HTTP POST发布图片和文字源代码
- android 显示16色的图片:输入用颜色矩阵,显示对应的16色位图