CERCA
PER MODELLO
FullScreen Chatbox! :)

Utente del giorno: megthebest con ben 3 Thanks ricevuti nelle ultime 24 ore
Utente della settimana: megthebest con ben 14 Thanks ricevuti negli ultimi sette giorni
Utente del mese: megthebest con ben 26 Thanks ricevuti nell'ultimo mese

Visualizzazione dei risultati da 1 a 7 su 7
Discussione:

REFRESH LISTVIEW!!! come si fa???!!!

Se questa discussione ti è stata utile, ti preghiamo di lasciare un messaggio di feedback in modo che possa essere preziosa in futuro anche per altri utenti come te!
  1. #1
    Baby Droid L'avatar di DaRkViDe


    Registrato dal
    Mar 2010
    Messaggi
    40

    Ringraziamenti
    0
    Ringraziato 1 volta in 1 Post
    Predefinito

    REFRESH LISTVIEW!!! come si fa???!!!

    Ragazzi allora sto inserendo degli elementi in una listview utilizzando un arrayadapter! in seguito vorrei aggiungerle con un EditText alla pressione di un Button ma non riesco ad aggiornare la ListView subito, solo se premo Back e riapro l'activity compare l'elemento nella lista...!!
    Vi mostro il codice



    x
     
    1
    protected void onCreate(Bundle savedInstanceState) {
    2
            setFullscreen();
    3
            super.onCreate(savedInstanceState);
    4
            setContentView(R.layout.manage_feeds);
    5
            final SharedPreferences prefs = getSharedPreferences(MY_PREFERENCES,
    6
                    Context.MODE_PRIVATE);
    7
    8
            final Map<String, ?> map = prefs.getAll();
    9
            final SharedPreferences.Editor editor = prefs.edit();
    10
            final EditText et = (EditText) findViewById(R.id.add_key);
    11
            final ListView listView = (ListView) findViewById(R.id.feed_keyword_list);
    12
            Button updateButton = (Button) findViewById(R.id.add_key_button);
    13
            updateButton.setOnClickListener(new OnClickListener() {
    14
    15
                @Override
    16
                public void onClick(View arg0) {
    17
                    // Inserisco il valore tra le SharedPreferences e poi aggiorno la lista
    18
    19
                    String key_to_add = (String) et.getText().toString();
    20
                    if (key_to_add != null) {
    21
                        editor.putBoolean(key_to_add, false);
    22
    23
                        editor.commit();
    24
                    // Stampo un Toast
    25
                        if (key_to_add != null || key_to_add != ""
    26
                                || key_to_add != " ")
    27
                            Toast.makeText(arg0.getContext(),
    28
                                    "Aggiunta keyword: " + key_to_add,
    29
                                    Toast.LENGTH_SHORT).show();
    30
    //Ora voreri aggiornare la lista mostrandovi anche il nuovo valore...
    31
                        
    32
                        //arrayAdapter.notifyDataSetChanged(); Ho provato questo ma non funge
    33
                        
    34
                        /*QUESTO NON FUNGE NON SO SE é GIUSTO....
    35
                        CheckBox boxPreference = new CheckBox(arg0.getContext());
    36
                        boxPreference.setText(key_to_add);
    37
                        boxPreference.setChecked(prefs.getBoolean(key_to_add, false));
    38
                        boxPreference.setTextColor(R.color.black);
    39
                        boxPreference.setTextSize(25);
    40
                        boxPreference.setPadding(50, 0, 0, 0);
    41
                        listView.addFooterView(boxPreference);
    42
                         arrayAdapter.notifyDataSetChanged(); 
    43
                         arrayAdapter.notifyDataSetInvalidated(); 
    44
                        listView.invalidateViews(); 
    45
    */
    46
                    }
    47
                }
    48
            });
    49
    50
            final CheckBox auto_download = (CheckBox) findViewById(R.id.auto_download);
    51
    52
                    if (prefs.getBoolean("auto", false) == true) {
    53
                auto_download.setChecked(true);
    54
            }
    55
            CompoundButton.OnCheckedChangeListener checkedListener = new CompoundButton.OnCheckedChangeListener() {
    56
    57
                @Override
    58
                public void onCheckedChanged(CompoundButton button, boolean checked) {
    59
    //Aggiorno il valore della SharedPreference al click del checkbox
    60
                    if (button == auto_download) {
    61
                        editor.putBoolean("auto", auto_download.isChecked());
    62
                        editor.commit();
    63
                    }
    64
    65
                }
    66
    67
            };
    68
            // Registriamo i listener ai checkbox
    69
            auto_download.setOnCheckedChangeListener(checkedListener);
    70
    71
            editor.putBoolean(auto_download.getText().toString(), auto_download
    72
                    .isChecked());
    73
    74
            // impostiamo la lista delle parole nei feed
    75
    76
            arrayAdapter = new ArrayAdapter<String>(this, R.layout.feed_row_layout,
    77
                    R.layout.feed_row_layout, createItem(prefs)) {
    78
                @Override
    79
                public View getView(int position, View convertView, ViewGroup parent) {
    80
                    String item = getItem(position);
    81
                    LayoutInflater inflater = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE);
    82
                    View rowView = inflater.inflate(R.layout.feed_row_layout, null);
    83
                    LinearLayout lr = (LinearLayout) rowView
    84
                            .findViewById(R.id.feed_row_layout);
    85
                    CheckBox boxPreference = new CheckBox(this.getContext());
    86
                    boxPreference.setText(item);
    87
                    boxPreference.setChecked(prefs.getBoolean(item, false));
    88
                    boxPreference.setTextColor(R.color.black);
    89
                    boxPreference.setTextSize(25);
    90
                    boxPreference.setPadding(50, 0, 0, 0);
    91
                    lr.addView(boxPreference);
    92
                    return rowView;
    93
                }
    94
    95
            };
    96
    97
            listView.setAdapter(arrayAdapter);
    98
    99
        }



    Come posso fare il refresh del listview subito??
    Ho letto che bisogna fare il arrayAdapter.notifyDataSetChanged(); ma a me non ha funzionato... o forse l'ho fatto male...
    Potreste darmi una mano??? Thanks
    Ultima modifica di DaRkViDe; 06-05-10 alle 02:11

  2.  
  3. #2
    Administrator L'avatar di Andrea


    Registrato dal
    Nov 2008
    Messaggi
    3,368
    Smartphone
    Nexus S, myTouch Slide 4g

    Ringraziamenti
    143
    Ringraziato 880 volte in 323 Posts
    Predefinito

    hai provato a dare anche
    3
     
    1
    2
    listView.invalidate();
    3


    oppure, una volta cambiato il dataSet richiamare setAdapter. ?

    Twitter @veke87

  4. #3
    Baby Droid L'avatar di DaRkViDe


    Registrato dal
    Mar 2010
    Messaggi
    40

    Ringraziamenti
    0
    Ringraziato 1 volta in 1 Post
    Predefinito

    si ho provato anche quella...non funge... stavo pensando di far riavviare l'activity in modo che quando ricarica mi aggiorna gli elementi dellalista... come posso fare??
    Altre soluzioni?

  5. #4
    Baby Droid L'avatar di DaRkViDe


    Registrato dal
    Mar 2010
    Messaggi
    40

    Ringraziamenti
    0
    Ringraziato 1 volta in 1 Post
    Predefinito

    ho risolto in questo modo anche se non so se sia concettualmente giusto, ma almeno funziona...chiamo questo metodo:

    9
     
    1
    2
    public void refresh() {
    3
            super.finish();
    4
            Intent intent = new Intent(this, Feeds.class);
    5
            intent.setFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP);
    6
            intent.setFlags(Intent.FLAG_ACTIVITY_NO_HISTORY);
    7
            startActivity(intent);
    8
    }
    9


    so che non è il marrimo riavviare un'activity intera per aggiornare un listview ma non ho saputo fare di meglio, se avete suggerimenti...sono qua!

  6. #5
    Administrator L'avatar di Andrea


    Registrato dal
    Nov 2008
    Messaggi
    3,368
    Smartphone
    Nexus S, myTouch Slide 4g

    Ringraziamenti
    143
    Ringraziato 880 volte in 323 Posts
    Predefinito

    Hai provato con i miei metodi ?

    Twitter @veke87

  7. #6
    Baby Droid L'avatar di DaRkViDe


    Registrato dal
    Mar 2010
    Messaggi
    40

    Ringraziamenti
    0
    Ringraziato 1 volta in 1 Post
    Predefinito

    Quote Originariamente inviato da Andrea Visualizza il messaggio
    Hai provato con i miei metodi ?
    yes....non funge...

  8. #7
    Administrator L'avatar di Andrea


    Registrato dal
    Nov 2008
    Messaggi
    3,368
    Smartphone
    Nexus S, myTouch Slide 4g

    Ringraziamenti
    143
    Ringraziato 880 volte in 323 Posts
    Predefinito

    Non mi sembra possibile. IO faccio esattamente in quel metodo. C'è sicuramente qualcosa che ci sfugge. Comunque se hai risolto e sei soddisfatto così va bene

    Twitter @veke87

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire risposte
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Torna su
Privacy Policy