带删除按钮的ListView

来源:互联网 发布:靠谱的淘宝化妆品代购 编辑:程序博客网 时间:2024/06/07 07:34
不用说了,上图先:

import java.util.ArrayList;import com.ql.adapter.DeletableAdapter;import android.app.Activity;import android.os.Bundle;import android.view.View;import android.view.View.OnClickListener;import android.widget.Button;import android.widget.ListView;public class Test_4_Activity extends Activity {private DeletableAdapter adapter;private ArrayList<String> text;@Overridepublic void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.test4);ListView list_view = (ListView) findViewById(R.id.list_view);text = new ArrayList<String>();text.add("111");text.add("222");text.add("333");text.add("444");// 初始化数据结束adapter = new DeletableAdapter(this, text);list_view.setAdapter(adapter);// list_view.setSelector(R.drawable.list_select_color);Button button = (Button) findViewById(R.id.button);button.setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View v) {// TODO Auto-generated method stubtext.add("10000");adapter.notifyDataSetChanged();}});}}


import java.util.ArrayList;import android.content.Context;import android.view.LayoutInflater;import android.view.View;import android.view.ViewGroup;import android.view.View.OnClickListener;import android.widget.BaseAdapter;import android.widget.ImageView;import android.widget.TextView;import android.widget.Toast;import com.ql.activity.R;public class DeletableAdapter extends BaseAdapter{private Context context;private ArrayList<String> text;public DeletableAdapter(Context context,ArrayList<String> text){this.context = context;this.text=text;}@Overridepublic int getCount() {// TODO Auto-generated method stubreturn text.size();}@Overridepublic Object getItem(int position) {// TODO Auto-generated method stubreturn text.get(position);}@Overridepublic long getItemId(int position) {// TODO Auto-generated method stubreturn position;}@Overridepublic View getView(int position, View convertView, ViewGroup parent) {// TODO Auto-generated method stubfinal int index=position;View view=convertView;if(view==null){LayoutInflater inflater = (LayoutInflater)context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);view=inflater.inflate(R.layout.row_simple_list_item_2, null);}final TextView textView=(TextView)view.findViewById(R.id.simple_item_1);textView.setText(text.get(position));final ImageView imageView=(ImageView)view.findViewById(R.id.simple_item_2);imageView.setBackgroundResource(android.R.drawable.ic_delete);imageView.setTag(position);imageView.setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View v) {// TODO Auto-generated method stubtext.remove(index);notifyDataSetChanged();Toast.makeText(context, textView.getText().toString(), Toast.LENGTH_SHORT).show();}});return view;}}

<?xml version="1.0" encoding="utf-8"?><RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"    android:layout_width="fill_parent"    android:layout_height="wrap_content"    >    <ImageView android:id="@+id/simple_item_2"    android:layout_width="wrap_content"    android:layout_height="fill_parent"     android:layout_alignParentRight="true"    android:focusable="false"    />  <TextView android:id="@+id/simple_item_1"    android:layout_width="fill_parent"     android:layout_height="fill_parent"     android:layout_alignParentLeft="true"    /></RelativeLayout>


这里要实现点击ListView里面的一个控件而不是选中一行。
最好重写Adapter,而不要使用其自带的SimpleAdapter,否则该子控件的事件就不那么好处理了!
原创粉丝点击