【问题标题】:Android how to delete items from list with longclicklistenerAndroid如何使用longclicklistener从列表中删除项目
【发布时间】:2012-04-09 11:09:12
【问题描述】:

我刚开始使用列表,所以这可能是一个愚蠢的问题,但我不知道该怎么做,我检查了很多类似的问题,但它们的信息很复杂。我只有数字的列表将只有用户从 EditText 框中输入的 1 到 10 个项目,所以很简单,在显示时我想让用户能够从这个列表中删除项目很长按项目行,我该怎么做?

这是我的代码:

final ArrayList<Double> individuallist = new ArrayList<Double>();
final ArrayAdapter<Double> bb;
bb = new ArrayAdapter<Double>(this,android.R.layout.simple_list_item_1 ,individuallist);
listView.setAdapter(bb);

   // add button
    
    Button addbutton = (Button) findViewById(R.id.btnnext);
    addbutton.setOnClickListener(new View.OnClickListener() {
        
        @Override
        public void onClick(View v) {
            // TODO Auto-generated method stub
                           iamount = amountText.getText().toString();
                       it = Double.valueOf(iamount);
            individuallist.add(0, it);
            bb.notifyDataSetChanged();
            item1.setText("");
        }
    });

这就是我声明我的列表并向其中添加项目的方式:item1 是一个 EditText 框,我在其中获取用户数量。如何删除列表中的单个项目?

【问题讨论】:

    标签: android list listview arraylist


    【解决方案1】:

    如果您希望在用户长按列表中的项目时从列表中删除该项目,请在您的列表视图上调用setOnItemLongClickListener()

    通过您对OnItemLongClickListener 的实施,您将获得该职位。然后您可以更新您的ListAdapter。它可能看起来像,

    listView.setOnItemLongClickListener(new OnItemLongClickListener() {
      @Override
      public void onItemLongClick((AdapterView<?> parent, View view, int position, long id) {
        MyAdapter adapter = (MyAdapter)listView.getAdapter();
        myAdapter.removeItemAt(pos); // you need to implement this method
        myAdapter.notifyDataSetChanged();
      }
    )); 
    

    【讨论】:

    • 您将如何实现myAdapter.removeItemAt(pos); 方法?我只能选择myAdapter.remove(object)
    • 最好的方法是从 ArrayList bb.remove(pos) 中删除值并调用 notifyDataSetChanged()
    • 在您的适配器中,您通常有一个支持该列表的对象列表。只需实现一个方法来调用列表并删除特定位置的项目。
    • 这只有在你自己制作适配器的情况下才有效,对吧?或者我将如何向 Android 自己的 ArrayAdapter 添加新方法?
    • 底线是:要从列表视图中删除项目,请从支持列表视图的列表适配器中删除该项目。你如何去做取决于你的来源。因为我面前没有你所有的消息来源,所以很难回答这个问题。最终,您构建了数组适配器,因此您可以保存对列表的引用,或用于构造它的数组数据。您如何进行修改取决于您构建应用程序的方式。
    猜你喜欢
    • 2014-07-30
    • 1970-01-01
    • 2021-07-19
    • 2017-06-04
    • 2016-03-12
    • 1970-01-01
    • 2011-06-21
    • 2022-12-20
    相关资源
    最近更新 更多