Android无法使用自定义布局删除Listview中的项目

时间:2016-09-23 12:03:11

标签: android listview

我正在尝试使用Listview中的EditText和Button执行添加/删除项目。

在EditText中键入一些文本并单击按钮后,将在下面添加此新项目。单击该项目时,将删除该项目。

可以正常使用

final ArrayAdapter<String>arrayAdapter=new ArrayAdapter<String>

(Main.this,android.R.layout.simple_list_item_1,arrayList);

这是编码。

button.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View view) {

        String get_text=editText.getText().toString();
        arrayList.add(get_text);
        final ArrayAdapter<String>arrayAdapter=new ArrayAdapter<String>(Main.this,android.R.layout.simple_list_item_1,arrayList);
        listView.setAdapter(arrayAdapter);
        editText.setText("");

        listView.setOnItemClickListener(new android.widget.AdapterView.OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> parent, View view, final int position, long id) {

                arrayList.remove(position);
                arrayAdapter.notifyDataSetChanged();
            }
        });
    }
});

但是,如果我更改为Listview的自定义布局,它将不起作用。单击该项目时,它不会删除,也不会出现错误提示

final ArrayAdapter<String>arrayAdapter=new ArrayAdapter<String>

(Main.this,R.layout.row,R.id.textView,arrayList);

enter image description here

1 个答案:

答案 0 :(得分:2)

已对代码进行了更改。试试这个。 :)

final ArrayAdapter<String>arrayAdapter=new ArrayAdapter<String>(Main.this,android.R.layout.simple_list_item_1,arrayList);
listView.setAdapter(arrayAdapter);

button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
 String get_text=editText.getText().toString();
 arrayList.add(get_text);
 editText.setText("");
 arrayAdapter.notifyDataSetChanged();
  }
    });

 listView.setOnItemClickListener(new android.widget.AdapterView.OnItemClickListener() {
                @Override
                public void onItemClick(AdapterView<?> parent, View view, final int position, long id) {

                    arrayList.remove(position);
                    arrayAdapter.notifyDataSetChanged();
                }
            });