上网收集了一些资料,都是从别人的代码中修改过来,一起分享。
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; } }