- package com.example.lenovo.myapplication;
- import android.support.v7.app.AppCompatActivity;
- import android.os.Bundle;
- import android.util.Log;
- import android.view.View;
- import android.widget.*;
- import java.util.*;
- public class MainActivity extends AppCompatActivity {
- private List<String> strings = new ArrayList<>(Arrays.asList("one", "two"));
- private int idx = 2;
- private ListAdapter arrayAdaper;
- private boolean removeMode = false;
- private ListView listView;
- private SortedSet<Integer> idsToRemove = new TreeSet<>();
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.activity_main);
- final ListAdapter la1 = new ArrayAdapter<>(this, android.R.layout.simple_list_item_1, strings);
- final ListAdapter la2 = new ArrayAdapter<>(this, android.R.layout.simple_list_item_multiple_choice, strings);
- arrayAdaper = la1;
- listView = findViewById(R.id.listView);
- listView.setAdapter(arrayAdaper);
- listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
- @Override
- public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {
- if(!removeMode){
- return;
- }
- CheckedTextView checkedTextView =
- (CheckedTextView) view.findViewById(android.R.id.text1);
- if (!checkedTextView.isChecked()) {
- if (!idsToRemove.contains(i)) {
- idsToRemove.add(i);
- }
- } else {
- idsToRemove.remove(new Integer(i));
- }
- checkedTextView.setChecked(!checkedTextView.isChecked());
- }
- });
- final Button buttonRemove = findViewById(R.id.buttonRemove);
- final Button buttonAdd = findViewById(R.id.buttonAdd);
- buttonRemove.setOnClickListener((new View.OnClickListener() {
- @Override
- public void onClick(View view) {
- if (!removeMode) {
- listView.setAdapter(la2);
- buttonAdd.setText("usun");
- buttonRemove.setText("anuluj");
- } else {
- buttonAdd.setText("dodaj");
- buttonRemove.setText("usuwanie");
- listView.setAdapter(la1);
- }
- removeMode = !removeMode;
- }
- }));
- buttonAdd.setOnClickListener(new View.OnClickListener() {
- @Override
- public void onClick(View view) {
- if (!removeMode) {
- strings.add("abc");
- idx++;
- } else {
- System.out.println(idsToRemove.toString());
- List<Integer> test = new ArrayList(idsToRemove);
- Collections.reverse(test);
- for (Integer i : test) {
- // ((ArrayAdapter<String>) arrayAdaper).getItem(i);
- System.out.println("romoving: "+i +"from " + strings );
- String el = ((ArrayAdapter<String>) arrayAdaper).getItem(i);
- ((ArrayAdapter<String>) arrayAdaper).remove(el);
- //((BaseAdapter) arrayAdaper).notifyDataSetChanged();
- idx--;
- }
- idsToRemove.clear();
- buttonRemove.callOnClick();
- }
- ((BaseAdapter) arrayAdaper).notifyDataSetChanged();
- }
- });
- }
- }