CERCA
PER MODELLO
FullScreen Chatbox! :)

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

Visualizzazione dei risultati da 1 a 2 su 2
Discussione:

listview non aggiorna textview

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


    Registrato dal
    Jul 2015
    Messaggi
    49

    Ringraziamenti
    4
    Ringraziato 2 volte in 2 Posts
    Predefinito

    listview non aggiorna textview

    salve ho una listview personalizzata con due textview e due bottoni.
    un bottone una volte premuto modifica il database sqlite e inserisce il nuovo valore sulla textview
    il problema è che premendo un bottone esso modifica il database sqlite ma la textview presente nella listview non viene aggiornata
    vi posto il codice dell'adapter
    x
     
    1
    2
    class myCustomObject {
    3
        private String text1;
    4
        private int text2;
    5
    6
        public String getText1(){
    7
    8
            return this.text1;
    9
        }
    10
        public void setText1(String text1){        this.text1= text1;
    11
        }
    12
    13
        public int getText2(){
    14
            return this.text2;
    15
        }
    16
        public void setText2(int text2){
    17
            this.text2= text2;
    18
        }
    19
    20
        public myCustomObject(String text1, int text2) {
    21
            this.text1 = text1;
    22
            this.text2 = text2;
    23
        }
    24
    25
    26
    }
    27
    28
    29
    30
    31
    public class Adapter_MainActivity extends BaseAdapter {
    32
        private ArrayList mapData;
    33
        Context context;
    34
        int layoutResourceId;
    35
    36
        Holder holder;
    37
    38
        public Adapter_MainActivity(Context context, int layoutResourceId, Map<Integer, myCustomObject> arList) {
    39
            this.layoutResourceId = layoutResourceId;
    40
            this.context = context;
    41
    42
            mapData = new ArrayList();
    43
            mapData.addAll(arList.entrySet());
    44
        }
    45
    46
         @<a rel="nofollow" href="https://www.androidiani.com/forum/members/override.html" target="_blank">Override</a>
    47
        public int getCount() {
    48
            return mapData.size();
    49
        }
    50
    51
    52
         @<a rel="nofollow" href="https://www.androidiani.com/forum/members/override.html" target="_blank">Override</a>
    53
        public Map.Entry<Integer, myCustomObject> getItem(int position) {
    54
            return (Map.Entry) mapData.get(position);
    55
        }
    56
    57
         @<a rel="nofollow" href="https://www.androidiani.com/forum/members/override.html" target="_blank">Override</a>
    58
        public long getItemId(int position) {
    59
            return 0;
    60
        }
    61
    62
         @<a rel="nofollow" href="https://www.androidiani.com/forum/members/override.html" target="_blank">Override</a>
    63
        public View getView(int position, View view, ViewGroup parent) {
    64
            if(view == null) {
    65
                holder = new Holder();
    66
    67
                LayoutInflater inflater = ((Activity)context).getLayoutInflater();
    68
                view = inflater.inflate(layoutResourceId, parent, false);
    69
    70
                holder.textView = (TextView)view.findViewById(R.id.textViewList);
    71
                holder.textView2 = (TextView)view.findViewById(R.id.numero);
    72
    73
                FloatingActionButton fab = (FloatingActionButton) view.findViewById(R.id.fab);
    74
                fab.setTag(position);
    75
                fab.setOnClickListener(new View.OnClickListener() {
    76
                     @<a rel="nofollow" href="https://www.androidiani.com/forum/members/override.html" target="_blank">Override</a>
    77
                    public void onClick(View view) {
    78
                        int position = (Integer) view.getTag();
    79
                        DbHelper helper = new DbHelper(context);
    80
                        SQLiteDatabase db = helper.getReadableDatabase();
    81
                        String titol = holder.textView.getText().toString();
    82
                        String numero =  holder.textView2.getText().toString();
    83
    84
                        //valore incremento
    85
                        String[] selectionArg = {titol};
    86
                        Cursor p = db.rawQuery("SELECT _id FROM contatore WHERE titolo=?", selectionArg);
    87
                        int tot = 0;
    88
                        while (p.moveToNext()) {
    89
                            Cursor g = db.rawQuery("SELECT * FROM promemoria WHERE idcont=? ORDER BY _id DESC LIMIT 1", new String[]{p.getString(0)});
    90
                            while (g.moveToNext()) {
    91
                                String Valore_in = g.getString(3);//ultimo valore incremento inserito
    92
                                int valore_in = Integer.parseInt(Valore_in);
    93
                                int numer = Integer.parseInt(numero);
    94
                                tot = numer + valore_in;
    95
                                Log.d("errore", "numero=" + String.valueOf(numero) + "   valore incremento =" + Valore_in + "totale " + tot);
    96
    97
                                //data
    98
                                long date = System.currentTimeMillis();
    99
                                SimpleDateFormat sdf = new SimpleDateFormat("E, dd/MM/yyyy h:mm a");
    100
                                String dateString = sdf.format(date);
    101
    102
                                ContentValues values = new ContentValues();
    103
                                values.put("numero", tot);
    104
                                values.put("data", String.valueOf(dateString));
    105
                                values.put("valore_incremento", valore_in);
    106
                                values.put("incremento_decremento", "+");
    107
                                values.put("idcont", g.getString(5));
    108
                                db.insert("promemoria", null, values); //inserimento nella tabella
    109
    110
                            }
    111
                        }
    112
                        holder.textView2.setText(tot);
    113
    114
                    }
    115
                });
    116
                view.setTag(holder);
    117
            } else {
    118
                holder = (Holder)view.getTag();
    119
            }
    120
    121
            Map.Entry<Integer, myCustomObject> item = getItem(position);
    122
            holder.textView.setText(item.getValue().getText1());
    123
            holder.textView2.setText(String.valueOf(item.getValue().getText2()));
    124
    125
            return view;
    126
        }
    127
        public void add(Map<Integer, myCustomObject> map) {
    128
            mapData.addAll(map.entrySet());
    129
        }
    130
        public void clear() {
    131
            mapData.clear();
    132
        }
    133
    134
    }
    135
    class Holder {
    136
        TextView textView, textView2;
    137
    }


    ho provato con holder.textView2.setText(tot);
    ma l'app va in crash

  2.  
  3. #2
    Baby Droid


    Registrato dal
    Jul 2015
    Messaggi
    49

    Ringraziamenti
    4
    Ringraziato 2 volte in 2 Posts
    Predefinito

    sono riuscito a far stampare i valori nella textview
    ma solo al primo click
    se clicco nuovamente mi aggiorna il db ma la textview no

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