繁体   English   中英

如何从列表视图中删除所选项?

[英]How to delete a selected item from the listview?

抱歉这个混乱:更新的问题:我正在尝试从列表视图中删除列表项。 单击该项目时,将显示alertdialog。 如果我单击“确定”,则必须从列表视图中删除所选项目。 我的代码如下:

case R.id.lvinc:
       AlertDialog.Builder builder = new AlertDialog.Builder(this);
        builder.setTitle("Delete Event ");

        builder.setMessage("Delete this Event ?");
        builder.setPositiveButton("Ok, Delete",
                new DialogInterface.OnClickListener() {
                public void onClick(DialogInterface dialog, int id) {
                  try
                  {
                     ???? //What code to delete the selected list item?




                  }catch(Exception e)
                  {
                      e.printStackTrace();
                  }
         }
                });

        AlertDialog alert = builder.create();
        alert.show();
        displaylist();
        break;

任何帮助都非常感谢,并提前感谢...

我不知道您使用的是哪种数据。

我想Cursor,数据库或List,随时告诉我们,所以它会更容易帮助。

此示例用于列表:

protected void onListItemClick(View v, int pos, long id) {
    Log.i(TAG, "onListItemClick id=" + id);
    //Display your Dialog
    (...)
    builder.setPositiveButton("Ok, Delete",
            new DialogInterface.OnClickListener() {
            public void onClick(DialogInterface dialog, int id) {
            myList.remove(pos);
            myAdapter.notifyDataChanged();
     }
            });

}

我试图解决它并得到一个解决方案请通过以下代码:

listview.java

public class listview extends Activity implements OnItemClickListener{

     ListView list;
     ListAdapter adapter;
     ArrayList<String> nameArray;

    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);//xml should have an ListView element
        nameArray   =   new  ArrayList<String>();
        nameArray.add("Item1");
        nameArray.add("Item2");
        nameArray.add("Item3");
        nameArray.add("Item4");
        nameArray.add("Item5");
        list = (ListView) findViewById(R.id.listView);
        list.setOnItemClickListener(listview.this);
        adapter=new ListAdapter(listview.this, nameArray);
        list.setAdapter(adapter);
    }
    @Override
    public void onItemClick(AdapterView<?> arg0, View arg1, int arg2, long arg3) {
        showDialog(arg2);
    }
    @Override
    protected Dialog onCreateDialog(final int id) {
        Builder builder = new AlertDialog.Builder(this);
        builder.setMessage("Delete Event")
            .setCancelable(true)
            .setPositiveButton("Ok, Delete",
                    new DialogInterface.OnClickListener() {
                    @Override
                    public void onClick(DialogInterface dialog, int which) {
                        nameArray.remove(id);
                        adapter=new ListAdapter(listview.this, nameArray);
                        list.setAdapter(adapter);
                    }
                    })
            .setNegativeButton("No",
                    new DialogInterface.OnClickListener() {
                    @Override
                    public void onClick(DialogInterface dialog, int which) {

                    }
                    });
        AlertDialog dialog = builder.create();
        dialog.show();
        return super.onCreateDialog(id);
    }
}

//适配器类

ListAdapter.java

public class ListAdapter extends BaseAdapter {

    private Activity activity;
    private ArrayList<String> name;
    private static LayoutInflater inflater=null;

    public ListAdapter(Activity a, ArrayList<String> nameArray) {
        activity = a;
        name    =   nameArray;
        inflater = (LayoutInflater)activity.getSystemService(Context.LAYOUT_INFLATER_SERVICE);

    }

    public int getCount() {
        return name.size();
    }

    public Object getItem(int position) {
        return position;
    }

    public long getItemId(int position) {
        return position;
    }

    public static class ViewHolder{
        public TextView text;
    }

    public View getView(int position, View convertView, ViewGroup parent) {
        View vi=convertView;
        ViewHolder holder;
        if(convertView==null){
            vi = inflater.inflate(R.layout.list_item, null);
            holder=new ViewHolder();
            holder.text=(TextView)vi.findViewById(R.id.title);
            vi.setTag(holder);
        }
        else
            holder=(ViewHolder)vi.getTag();
        holder.text.setText(name.get(position));
        return vi;
    }
}

你可以使用某种适配器,你可以提供某种数据。

从该列表中删除该项,并将notifyDataChanged删除到ListView。

最后:dialog.dismiss();

itemLayout.setOnClickListener(new OnClickListener() {
 @Override
 public void onClick(View arg0) {
 indexClick = position;
}
}
if ((indexClick) == (position)) {
  itemLayout.setBackgroundResource(R.drawable.tab_select);
}

否则把tab_unselected图像。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM