Java 如何在ListView中长时间选择项目以删除它们?

Java 如何在ListView中长时间选择项目以删除它们?,java,android,listview,onlongclicklistener,Java,Android,Listview,Onlongclicklistener,只是尝试创建一个简单的应用程序,允许用户输入注释并将其保存到列表视图中。我需要实现什么代码才能允许用户长按列表中的某个内容来删除它 public class Notes extends AppCompatActivity { Button save; ArrayList<String> addArray = new ArrayList<String>(); EditText txt; ListView show; @Override protected void o

只是尝试创建一个简单的应用程序,允许用户输入注释并将其保存到列表视图中。我需要实现什么代码才能允许用户长按列表中的某个内容来删除它

public class Notes extends AppCompatActivity {

Button save;
ArrayList<String> addArray = new ArrayList<String>();
EditText txt;
ListView show;


@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_notes);

    txt = (EditText) findViewById(R.id.textInput);
    show = (ListView) findViewById(R.id.listView);
    save = (Button) findViewById(R.id.saveButton);

    final ArrayAdapter<String> adapter = new ArrayAdapter<String>(Notes.this, android.R.layout.simple_list_item_1, addArray);

    save.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {

            String getInput = txt.getText().toString();

            if (addArray.contains(getInput)) {
                Toast.makeText(getBaseContext(), "Note already added!", Toast.LENGTH_LONG).show();
            } else if (getInput == null || getInput.trim().equals("")) {
                Toast.makeText(getBaseContext(), "Input required!", Toast.LENGTH_LONG).show();
            } else {
                addArray.add(getInput);

                show.setAdapter(adapter);
                ((EditText) findViewById(R.id.textInput)).setText(" ");
            }
        }
    });


    show.setOnItemLongClickListener(new AdapterView.OnItemLongClickListener() {
        @Override
        public boolean onItemLongClick(AdapterView<?> av, View v, int pos, long id) {

            return true;
        }
    });
}
公共类注释扩展了AppCompative活动{
按钮保存;
ArrayList addArray=新的ArrayList();
编辑文本文本;
列表视图显示;
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_注释);
txt=(EditText)findViewById(R.id.textInput);
show=(ListView)findViewById(R.id.ListView);
save=(按钮)findviewbyd(R.id.saveButton);
最终ArrayAdapter=新的ArrayAdapter(Notes.this,android.R.layout.simple\u list\u item\u 1,addArray);
save.setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图v){
字符串getInput=txt.getText().toString();
if(addArray.contains(getInput)){
Toast.makeText(getBaseContext(),“已添加注释!”,Toast.LENGTH_LONG.show();
}else if(getInput==null | | getInput.trim().equals(“”){
Toast.makeText(getBaseContext(),“需要输入!”,Toast.LENGTH_LONG.show();
}否则{
addArray.add(getInput);
show.setAdapter(适配器);
((EditText)findViewById(R.id.textInput)).setText(“”);
}
}
});
show.setOnItemLongClickListener(新的AdapterView.OnItemLongClickListener(){
@凌驾
长点击(AdapterView av、View v、int pos、long id){
返回true;
}
});
}

}

这可能会解决您的问题:

addArray.remove(pos);
adapter.notifyOnDataSetChanged();

您可以使用上下文菜单或上下文操作模式

浏览本教程:


然后,您可以从适配器中删除该项,并使用adapters Notifydatasetchanged方法通知lostview。

可能的重复项您是否检查了我的答案?