我写了一个listview,当我点击listview中的数据时,可以弹出一个对话框,对话框有两个按钮,一个是删除,一个是取消,我的适配器是用SimpleAdapter,但是,如何才能够弹出的对话框中的删除按钮起到删除这行数据的响应呢???

解决方案 »

  1.   

    listView.setAdapter(xxxx);重新更新一下适配器 
      

  2.   

    点击删除按钮后删除Adapter里面对应的List里面的数据,然后更新listview就可以了。不行的话自己写个Adapter
      

  3.   

    OnItemClick里的参数 position ,就是代表那一行的索引
      

  4.   

    我用这种对话框写 AlertDialog.Builder builder = new
     Builder(MingxiActivity.this);
     builder.setMessage("你选择的是?").setTitle("欢迎").setPositiveButton("删除",
     new android.content.DialogInterface.OnClickListener()
     {
     @Override
     public void onClick(DialogInterface dialog, int
     which)
     {

     dialog.dismiss();
     outcometable.delete(item3.get("name1").toString());
     }
     });
     builder.setNegativeButton("修改", new
     android.content.DialogInterface.OnClickListener()
     {
     @Override
     public void onClick(DialogInterface dialog, int
     which)
     {
     dialog.dismiss();

     }
     });
     builder.create().show();
      

  5.   

    我写的小例子,可以参考一下,不是SimpleAdapter,而是自定义MyAdapter(extends BaseAdapter).
    ListTestActivity.javapackage com.wo;import java.util.ArrayList;
    import java.util.List;import android.app.Activity;
    import android.app.AlertDialog;
    import android.content.DialogInterface;
    import android.os.Bundle;
    import android.util.Log;
    import android.view.View;
    import android.widget.AdapterView;
    import android.widget.AdapterView.OnItemClickListener;
    import android.widget.ListView;public class ListTestActivity extends Activity {
        ListView listView;
        MyAdapter adapter;
        List<String> list;    /** Called when the activity is first created. */
        @Override
        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.main);        list = new ArrayList<String>();
            for (int i = 0; i < 20; i++) {
                list.add(i + "");
            }
            adapter = new MyAdapter(this, list);
            listView = (ListView) this.findViewById(R.id.listView);
            listView.setAdapter(adapter);
            listView.setOnItemClickListener(new OnItemClickListener() {            @Override
                public void onItemClick(AdapterView<?> arg0, View arg1, final int arg2,
                        long arg3) {
                    // TODO Auto-generated method stub
                    AlertDialog.Builder builder = new AlertDialog.Builder(
                            ListTestActivity.this);
                    builder.setMessage("你选择的是?");
                    builder.setTitle("欢迎");
                    builder.setPositiveButton("删除",
                            new DialogInterface.OnClickListener() {
                                @Override
                                public void onClick(DialogInterface dialog,
                                        int which) {
                                    Log.v("tag", arg2 + "");
                                    list.remove(arg2);
                                    adapter.setList(list);
                                    adapter.notifyDataSetChanged();
                                    dialog.dismiss();                            }
                            });
                    builder.setNegativeButton("取消",
                            new android.content.DialogInterface.OnClickListener() {
                                @Override
                                public void onClick(DialogInterface dialog,
                                        int which) {
                                    dialog.dismiss();                            }
                            });
                    builder.create().show();            }        });    }
    }MyAdapter.javapackage com.wo;import java.util.List;import android.content.Context;
    import android.util.Log;
    import android.view.LayoutInflater;
    import android.view.View;
    import android.view.ViewGroup;
    import android.widget.BaseAdapter;
    import android.widget.TextView;public class MyAdapter extends BaseAdapter {    Context context;
        List<String> list;    public MyAdapter(Context context, List<String> list) {
            this.context = context;
            this.list = list;
        }    public void setList(List<String> list){
            this.list=list;
        }
        @Override
        public int getCount() {
            // TODO Auto-generated method stub
            return list.size();
        }
        
        @Override
        public Object getItem(int arg0) {
            // TODO Auto-generated method stub
            return list.get(arg0);
        }    @Override
        public long getItemId(int arg0) {
            // TODO Auto-generated method stub
            return arg0;
        }    public void refresh(List<String> list){
            this.list=list;
            this.notifyDataSetChanged();
        }
        @Override
        public View getView(int position, View convertView, ViewGroup arg2) {
            // TODO Auto-generated method stub
            ViewHolder holder = null;
            if (convertView == null) {
                convertView = LayoutInflater.from(context).inflate(R.layout.item,
                        null);
                holder = new ViewHolder();
                holder.textView = (TextView) convertView
                        .findViewById(R.id.textView);
                convertView.setTag(holder);
            } else {
                holder=(ViewHolder) convertView.getTag();
            }
            Log.v("tag", "getView()");        holder.textView.setText(list.get(position));
            return convertView;
        }    static class ViewHolder {
            TextView textView;
        }}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="wrap_content"
        android:orientation="vertical" >    <TextView
            android:id="@+id/textView"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:padding="10dp"
            android:text="dfsdf"
            android:textSize="24sp" /></LinearLayout>注意一下重点是这三句:
    list.remove(arg2);
    adapter.setList(list);
    adapter.notifyDataSetChanged();