Autore Topic: Non riesco ad eliminare correttamente item da uno string Array  (Letto 655 volte)

Offline theKuston

  • Nuovo arrivato
  • *
  • Post: 48
  • Respect: 0
    • Google+
    • Mostra profilo
  • Dispositivo Android:
    Google Nexus 5
  • Play Store ID:
    K-soft
  • Sistema operativo:
    windows 8.1, Ubuntu 14
Non riesco ad eliminare correttamente item da uno string Array
« il: 21 Settembre 2014, 20:27:37 CEST »
0
weeeee
allora io ho questo metodo setAlarm:
Codice (Java): [Seleziona]
private void setAlarm(Calendar targetCal){
        Log.d("setAlarm",targetCal.getTime().toString());
        int i = indexOfAlarm.getInt("i",1);// indexOfAlarm sono delle shared preferences nelle quali salvo la variabile i, per poter avere piu allarmi contemporaneamente
        PendingIntent pendingIntent =  PendingIntent.getBroadcast(getBaseContext(),i,intent,0);
        alarmManager.set(AlarmManager.RTC_WAKEUP, targetCal.getTimeInMillis(), pendingIntent);//imposto l'allarme
        i++;
        SharedPreferences.Editor editor = indexOfAlarm.edit();
        editor.putInt("i",i);// salvo la variabili i
        editor.putInt(targetCal.getTimeInMillis()+"",i);//salvo la variabile i secondo l'orario del targetCal per poter risalire ad essa posteriormente nel metodo cancelAlarm()
        editor.putString("targetCal",targetCal.getTimeInMillis()+"");
        Log.d("i",i+"");
        editor.commit();
        makeCustomToast("alarm setted !",R.drawable.ic_alarm_setted);//faccio un custom toast...
        final ListView alarmList = (ListView) findViewById(R.id.listView);//questa è la listView da popolare che mostra una lista degli allarmi
        activeAlarms = alarmsArrayPreference.getInt("activeAlarms",0);//creo una variabile activeAlarms in un sharedPreferences che mi permette di conoscere il numero di allarmi ativi
        final String[] alarmsArray = new String[activeAlarms+1];//l'array con gli allarmi
        alarmsArray[activeAlarms] = alarmsArrayPreference.getString("alarm"+activeAlarms,""+targetCal.getTime().toString());
        for(int i1 = activeAlarms; i1 >=0; i1-- ){// prendo le stringe delle allarmi gia salvate in precedenza
            alarmsArray[i1] = alarmsArrayPreference.getString("alarm"+i1,""+targetCal.getTime().toString());
        }
        final ArrayList<String> alarmsArrayConvertedInArrayList = new ArrayList<String>(Arrays.asList(alarmsArray));
        arrayAdapter = new ArrayAdapter<String>(getApplicationContext(),R.layout.custom_list_view,R.id.list_content,alarmsArrayConvertedInArrayList);
        alarmList.setAdapter(arrayAdapter);//imposto un adapter per visualizzare l'array con gli allarmi
        activeAlarms++;
        final SharedPreferences.Editor editor1 = alarmsArrayPreference.edit();
        editor1.putInt("activeAlarms",activeAlarms);
        for (int i2 = activeAlarms-1; i2>=0;i2--){
            String[] forSaving = new String[alarmsArrayConvertedInArrayList.size()];
            forSaving = alarmsArrayConvertedInArrayList.toArray(forSaving);
            editor1.putString("alarm"+i2, forSaving[i2]);
        }
        alarmList.setOnItemLongClickListener(new AdapterView.OnItemLongClickListener() {
            @Override
            public boolean onItemLongClick(AdapterView<?> parent, View view, int position, long id) {
                //qui è dove devo cancellare l'allarme
                String stringDate = alarmList.getItemAtPosition(position).toString();
                Calendar targetCal = Calendar.getInstance();
                SimpleDateFormat sfd = new SimpleDateFormat("EEE MMM dd HH:mm:ss zzzz yyyy");
                try {
                    targetCal.setTime(sfd.parse(stringDate));
                } catch (ParseException e) {
                    e.printStackTrace();
                }
                targetCal.set(Calendar.MINUTE,targetCal.get(Calendar.MINUTE)+1);
                targetCal.set(Calendar.SECOND, 0);
                targetCal.set(Calendar.MILLISECOND, 0);
                Log.d("onClick", targetCal.getTime().toString());
                deleteAlarm(targetCal);
                arrayAdapter.remove(alarmList.getItemAtPosition(position));
                arrayAdapter.notifyDataSetChanged();
                SharedPreferences.Editor editor2 = alarmsArrayPreference.edit();
                editor2.putInt("activeAlarms",activeAlarms--);
                editor2.commit();
                for (int i2 = activeAlarms-1; i2>=1;i2--){
                    String[] forSaving = new String[alarmsArrayConvertedInArrayList.size()];
                    forSaving = alarmsArrayConvertedInArrayList.toArray(forSaving);
                    editor1.putString("alarm"+i2, forSaving[i2]);
                }
                return false;
            }
        });
        editor1.commit();
        //salvo di nuovo le stringhe dell'allay per se ne fosse stata aggiunta una

    }
in pratica funziona tutto bene, eccetto che non riesco ad impostare e cancellare correttamente gli item dalla listView, cioe dall'array...
Tutte le mie applicazioni sul play store:
https://play.google.com/store/apps/developer?id=K-soft

Offline BlackJad

  • Utente junior
  • **
  • Post: 59
  • Respect: +6
    • Google+
    • michele-ziparo/4/825/a99/
    • blackjad82
    • Mostra profilo
    • Datawit Systems
  • Dispositivo Android:
    Samsung Galaxy S3
  • Play Store ID:
    Michele Ziparo
  • Sistema operativo:
    Windows 8.1
Re:Non riesco ad eliminare correttamente item da uno string Array
« Risposta #1 il: 26 Settembre 2014, 15:45:53 CEST »
0
Forse il problema è che dichiari come final ...

Offline theKuston

  • Nuovo arrivato
  • *
  • Post: 48
  • Respect: 0
    • Google+
    • Mostra profilo
  • Dispositivo Android:
    Google Nexus 5
  • Play Store ID:
    K-soft
  • Sistema operativo:
    windows 8.1, Ubuntu 14
Re:Non riesco ad eliminare correttamente item da uno string Array
« Risposta #2 il: 27 Settembre 2014, 22:52:35 CEST »
0
No... Ho provato ma niente...
Tutte le mie applicazioni sul play store:
https://play.google.com/store/apps/developer?id=K-soft

Offline emaborsa

  • Utente normale
  • ***
  • Post: 274
  • Java Developer
  • Respect: +33
    • Google+
    • emaborsa
    • Mostra profilo
    • www.emaborsa.com
  • Dispositivo Android:
    Samsung Galaxy S2
  • Sistema operativo:
    Linux 10 - Win8.1 - Android 4.1.2
Re:Non riesco ad eliminare correttamente item da uno string Array
« Risposta #3 il: 28 Settembre 2014, 11:39:30 CEST »
0
Se mi dai piú dettagli provo ad aiutarti. Non ho capito se vuoi rimuovere un item dall'array o dall'adapter(listview)...

Offline theKuston

  • Nuovo arrivato
  • *
  • Post: 48
  • Respect: 0
    • Google+
    • Mostra profilo
  • Dispositivo Android:
    Google Nexus 5
  • Play Store ID:
    K-soft
  • Sistema operativo:
    windows 8.1, Ubuntu 14
Re:Non riesco ad eliminare correttamente item da uno string Array
« Risposta #4 il: 28 Settembre 2014, 14:42:42 CEST »
0
Allora in pratica io devo eliminarlo dall'array in modo che quando si salva nelle sharedPreferences non mi ricompaia più un allarme eliminato... E di conseguenza non apparira piu neanche nella listView...Non so se m spiego...
Tutte le mie applicazioni sul play store:
https://play.google.com/store/apps/developer?id=K-soft

Offline emaborsa

  • Utente normale
  • ***
  • Post: 274
  • Java Developer
  • Respect: +33
    • Google+
    • emaborsa
    • Mostra profilo
    • www.emaborsa.com
  • Dispositivo Android:
    Samsung Galaxy S2
  • Sistema operativo:
    Linux 10 - Win8.1 - Android 4.1.2
Re:Non riesco ad eliminare correttamente item da uno string Array
« Risposta #5 il: 28 Settembre 2014, 14:47:27 CEST »
0
Beh, se hai la posizione dell'oggetto, basta che fai un adapter.remove(position) e poi richiami notifyDataSetChanged() sulla listView... non dovrebbe servire altro.

Offline theKuston

  • Nuovo arrivato
  • *
  • Post: 48
  • Respect: 0
    • Google+
    • Mostra profilo
  • Dispositivo Android:
    Google Nexus 5
  • Play Store ID:
    K-soft
  • Sistema operativo:
    windows 8.1, Ubuntu 14
Re:Non riesco ad eliminare correttamente item da uno string Array
« Risposta #6 il: 29 Settembre 2014, 17:06:22 CEST »
0

In teoria si ma l'ho fatto e nnt...

Citazione
arrayAdapter.remove(alarmList.getItemAtPosition(position));
                arrayAdapter.notifyDataSetChanged();
Tutte le mie applicazioni sul play store:
https://play.google.com/store/apps/developer?id=K-soft

Offline emaborsa

  • Utente normale
  • ***
  • Post: 274
  • Java Developer
  • Respect: +33
    • Google+
    • emaborsa
    • Mostra profilo
    • www.emaborsa.com
  • Dispositivo Android:
    Samsung Galaxy S2
  • Sistema operativo:
    Linux 10 - Win8.1 - Android 4.1.2
Re:Non riesco ad eliminare correttamente item da uno string Array
« Risposta #7 il: 30 Settembre 2014, 07:26:51 CEST »
0
In teoria si ma l'ho fatto e nnt...

...prova a richiamare anche invadate() sulla listView.

Offline theKuston

  • Nuovo arrivato
  • *
  • Post: 48
  • Respect: 0
    • Google+
    • Mostra profilo
  • Dispositivo Android:
    Google Nexus 5
  • Play Store ID:
    K-soft
  • Sistema operativo:
    windows 8.1, Ubuntu 14
Re:Non riesco ad eliminare correttamente item da uno string Array
« Risposta #8 il: 01 Ottobre 2014, 17:22:02 CEST »
0
niente...
Tutte le mie applicazioni sul play store:
https://play.google.com/store/apps/developer?id=K-soft

Offline emaborsa

  • Utente normale
  • ***
  • Post: 274
  • Java Developer
  • Respect: +33
    • Google+
    • emaborsa
    • Mostra profilo
    • www.emaborsa.com
  • Dispositivo Android:
    Samsung Galaxy S2
  • Sistema operativo:
    Linux 10 - Win8.1 - Android 4.1.2
Re:Non riesco ad eliminare correttamente item da uno string Array
« Risposta #9 il: 01 Ottobre 2014, 19:27:09 CEST »
0
Secondo me c'é un errore da qualche parte. Vuoi provare a passarmi il codice?

Offline theKuston

  • Nuovo arrivato
  • *
  • Post: 48
  • Respect: 0
    • Google+
    • Mostra profilo
  • Dispositivo Android:
    Google Nexus 5
  • Play Store ID:
    K-soft
  • Sistema operativo:
    windows 8.1, Ubuntu 14
Re:Non riesco ad eliminare correttamente item da uno string Array
« Risposta #10 il: 01 Ottobre 2014, 20:13:50 CEST »
0
Secondo me c'é un errore da qualche parte. Vuoi provare a passarmi il codice?
Te ne sarei molto grato... come te lo passo?
Tutte le mie applicazioni sul play store:
https://play.google.com/store/apps/developer?id=K-soft