Facebook
From Tacky Agouti, 5 Years ago, written in Plain Text.
Embed
Download Paste or View Raw
Hits: 202
  1. package com.example.lenovo.myapplication;
  2.  
  3. import android.support.v7.app.AppCompatActivity;
  4. import android.os.Bundle;
  5. import android.util.Log;
  6. import android.view.View;
  7. import android.widget.*;
  8.  
  9. import java.util.*;
  10.  
  11. public class MainActivity extends AppCompatActivity {
  12.     private List<String> strings = new ArrayList<>(Arrays.asList("one", "two"));
  13.     private int idx = 2;
  14.     private ListAdapter arrayAdaper;
  15.     private boolean removeMode = false;
  16.     private ListView listView;
  17.     private SortedSet<Integer> idsToRemove = new TreeSet<>();
  18.  
  19.  
  20.     @Override
  21.     protected void onCreate(Bundle savedInstanceState) {
  22.         super.onCreate(savedInstanceState);
  23.         setContentView(R.layout.activity_main);
  24.  
  25.         final ListAdapter la1 = new ArrayAdapter<>(this, android.R.layout.simple_list_item_1, strings);
  26.         final ListAdapter la2 = new ArrayAdapter<>(this, android.R.layout.simple_list_item_multiple_choice, strings);
  27.  
  28.         arrayAdaper = la1;
  29.         listView = findViewById(R.id.listView);
  30.         listView.setAdapter(arrayAdaper);
  31.  
  32.         listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
  33.             @Override
  34.             public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {
  35.  
  36.                 if(!removeMode){
  37.                     return;
  38.                 }
  39.  
  40.                 CheckedTextView checkedTextView =
  41.                         (CheckedTextView) view.findViewById(android.R.id.text1);
  42.  
  43.                 if (!checkedTextView.isChecked()) {
  44.                     if (!idsToRemove.contains(i)) {
  45.                         idsToRemove.add(i);
  46.                     }
  47.                 } else {
  48.                     idsToRemove.remove(new Integer(i));
  49.                 }
  50.                 checkedTextView.setChecked(!checkedTextView.isChecked());
  51.  
  52.  
  53.             }
  54.         });
  55.  
  56.         final Button buttonRemove = findViewById(R.id.buttonRemove);
  57.         final Button buttonAdd = findViewById(R.id.buttonAdd);
  58.  
  59.         buttonRemove.setOnClickListener((new View.OnClickListener() {
  60.             @Override
  61.             public void onClick(View view) {
  62.                 if (!removeMode) {
  63.                     listView.setAdapter(la2);
  64.                     buttonAdd.setText("usun");
  65.                     buttonRemove.setText("anuluj");
  66.                 } else {
  67.                     buttonAdd.setText("dodaj");
  68.                     buttonRemove.setText("usuwanie");
  69.                     listView.setAdapter(la1);
  70.                 }
  71.                 removeMode = !removeMode;
  72.             }
  73.         }));
  74.  
  75.         buttonAdd.setOnClickListener(new View.OnClickListener() {
  76.             @Override
  77.             public void onClick(View view) {
  78.                 if (!removeMode) {
  79.                     strings.add("abc");
  80.                     idx++;
  81.                 } else {
  82.                     System.out.println(idsToRemove.toString());
  83.                     List<Integer> test = new ArrayList(idsToRemove);
  84.                     Collections.reverse(test);
  85.                     for (Integer i : test) {
  86.                         //  ((ArrayAdapter<String>) arrayAdaper).getItem(i);
  87.                         System.out.println("romoving: "+i +"from " + strings );
  88.                         String el = ((ArrayAdapter<String>) arrayAdaper).getItem(i);
  89.                         ((ArrayAdapter<String>) arrayAdaper).remove(el);
  90.                         //((BaseAdapter) arrayAdaper).notifyDataSetChanged();
  91.                         idx--;
  92.                     }
  93.                     idsToRemove.clear();
  94.                     buttonRemove.callOnClick();
  95.                 }
  96.                 ((BaseAdapter) arrayAdaper).notifyDataSetChanged();
  97.             }
  98.         });
  99.  
  100.  
  101.     }
  102. }
  103.