2016-09-23 2 views
0

Я пытаюсь сделать элемент Add/Remove с помощью EditText и Button в Listview.Android Не удалось удалить элемент в Listview с настраиваемым макетом

После ввода текста в 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

+0

код неправильно – anonymous

+0

Каждый раз, когда вы нажимаете на кнопку, и восстановить новый адаптер для ListView – anonymous

+0

анонимный это написать, почему вы включаете listview.setonItemClickListener внутри события щелчка бутон в? –

ответ

1

Сделали изменения в коде. Попробуй это. :)

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(); 
       } 
      }); 
+0

Эй, он не работает. Обратите внимание, что для пользовательского макета это (Main.this, R.layout.row, R.id.textView, arrayList); not (Main.this, android.R.layout.simple_list_item_1, arrayList). Он не работает для пользовательского макета – gosulove

+0

Создал ли пользовательский адаптер? – anonymous

+0

нет ... но я думал, так как я могу добавить элемент, я тоже могу его удалить? – gosulove

Смежные вопросы