Android如何使用longclicklistener从列表中删除项目
我刚开始研究列表,所以这可能是一个愚蠢的问题,但我不知道怎么做,我检查了很多类似的问题,但它们的信息很复杂。我的列表中只有数字,用户从编辑文本框中输入的项目长度仅在1到10个之间,因此很简单,在显示时,我想让用户能够通过长按项目行从该列表中删除项目,如何实现这一点 这是我的代码:Android如何使用longclicklistener从列表中删除项目,android,list,listview,arraylist,Android,List,Listview,Arraylist,我刚开始研究列表,所以这可能是一个愚蠢的问题,但我不知道怎么做,我检查了很多类似的问题,但它们的信息很复杂。我的列表中只有数字,用户从编辑文本框中输入的项目长度仅在1到10个之间,因此很简单,在显示时,我想让用户能够通过长按项目行从该列表中删除项目,如何实现这一点 这是我的代码: final ArrayList<Double> individuallist = new ArrayList<Double>(); final ArrayAdapter<Double>
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("");
}
});
final ArrayList individuallist=new ArrayList();
最终阵列适配器bb;
bb=新的阵列适配器(这是android.R.layout.simple_list_item_1,individuallist);
setAdapter(bb);
//添加按钮
按钮addbutton=(按钮)findViewById(R.id.btnnext);
addbutton.setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图v){
//TODO自动生成的方法存根
iamount=amountText.getText().toString();
它=两倍的值(iamount);
个人列表。添加(0,it);
bb.notifyDataSetChanged();
第1项:setText(“”);
}
});
这就是我声明列表并向其中添加项目的方式:item1是一个编辑文本框,我从中获取用户金额。如何删除列表中的单个项目
提前感谢您的帮助。如果您希望在用户长时间单击列表中的项目时将该项目从列表中删除,请调用您的listview 从您的
OnItemLongClickListener
实现中,您将获得该职位。然后,您可以更新列表适配器
。它可能看起来像
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();
}
));
listView.setOnItemLongClickListener(新的OnItemLongClickListener(){
@凌驾
长单击((AdapterView父视图、视图、整型位置、长id)时的公共无效{
MyAdapter=(MyAdapter)listView.getAdapter();
myAdapter.removietemat(pos);//您需要实现此方法
myAdapter.notifyDataSetChanged();
}
));
如果希望在用户长时间单击列表中的项目时从列表中删除该项目,请调用listview
从您的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();
}
));
listView.setOnItemLongClickListener(新的OnItemLongClickListener(){
@凌驾
长单击((AdapterView父视图、视图、整型位置、长id)时的公共无效{
MyAdapter=(MyAdapter)listView.getAdapter();
myAdapter.removietemat(pos);//您需要实现此方法
myAdapter.notifyDataSetChanged();
}
));
如何实现myAdapter.removietemat(pos);
方法?我只能选择myAdapter.remove(object)
。最好的方法是从ArrayList bb.remove(pos)中删除该值并调用notifyDataSetChanged()在您的适配器中,通常会有一个支持列表的对象列表。只需实现一个方法来调用列表并在特定位置删除该项。这只有在您自己的适配器正确的情况下才会起作用?或者我如何向安卓自己的ArrayAdapter添加一个新方法?底线是:从列表中删除项在ist视图中,从支持列表视图的列表适配器中删除该项。如何执行此操作取决于您的源。由于我没有将您的所有源放在我的前面,因此很难回答此问题。最终您构建了数组适配器,因此您可以保留对列表的引用或用于构建列表的数组数据。如何修改这取决于您是如何构造应用程序的。您将如何实现myAdapter.removietemat(pos);
方法?我只能选择myAdapter.remove(object)
。最好的方法是从ArrayList bb.remove(pos)中删除该值并调用notifyDataSetChanged()在您的适配器中,通常会有一个支持列表的对象列表。只需实现一个方法来调用列表并在特定位置删除该项。这只有在您自己的适配器正确的情况下才会起作用?或者我如何向安卓自己的ArrayAdapter添加一个新方法?底线是:从列表中删除项在ist视图中,从支持列表视图的列表适配器中删除该项。如何执行此操作取决于您的源。由于我没有将您的所有源放在我的前面,因此很难回答此问题。最终您构建了数组适配器,因此您可以保留对列表的引用或用于构建列表的数组数据。如何修改这取决于您如何构建应用程序。