IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Composants graphiques Android Discussion :

Modification Listview (issue d'une BDD) par un Edit-Text


Sujet :

Composants graphiques Android

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Enseignant
    Inscrit en
    Août 2011
    Messages
    25
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Bâtiment

    Informations forums :
    Inscription : Août 2011
    Messages : 25
    Par défaut Modification Listview (issue d'une BDD) par un Edit-Text
    Salut à tous,

    Comme indiqué dans le titre je cherche à modifier des élément d'une Listview par un Edittext.

    Ma base de données contient ID, NOM, PRENOM, NOTE.

    En m'inspirant du tuto NOTEPAD, pour l'instant en cliquant sur une ligne de la LV par le biais de

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    @Override
        protected void onListItemClick(ListView l, View v, int position, long id) {
           super.onListItemClick(l, v, position, id);
            Intent i = new Intent(this, ModificationsNotes.class);
            i.putExtra(ElevesDbAdapter.KEY_ROWID, id);
           startActivityForResult(i, ACTIVITY_EDIT);
      }
    j'arrive sur un autre écran contenant l'EditText de modification de la note de l'élève avec ce code

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
     
    import android.app.Activity;
    import android.database.Cursor;
    import android.os.Bundle;
    import android.view.View;
    import android.widget.Button;
    import android.widget.EditText;
     
     
    public class ModificationsNotes extends Activity {
     
        private EditText ModifNote;
        private Long mRowId;
        private ElevesDbAdapter mDbHelper;
     
        @Override
        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            mDbHelper = new ElevesDbAdapter(this);
            mDbHelper.open();
     
            setContentView(R.layout.modifications_notes);
            setTitle(R.string.modification_fiche);
     
            ModifNote = (EditText) findViewById(R.id.note);
     
     
     
            Button confirmButton = (Button) findViewById(R.id.confirm);
     
            mRowId = (savedInstanceState == null) ? null :
                (Long) savedInstanceState.getSerializable(ElevesDbAdapter.KEY_ROWID);
    		if (mRowId == null) {
    			Bundle extras = getIntent().getExtras();
    			mRowId = extras != null ? extras.getLong(ElevesDbAdapter.KEY_ROWID)
    									: null;
    		}
     
    		populateFields();
     
            confirmButton.setOnClickListener(new View.OnClickListener() {
     
                public void onClick(View view) {
                    setResult(RESULT_OK);
                    finish();
                }
     
            });
        }
     
        private void populateFields() {
            if (mRowId != null) {
                Cursor classe = mDbHelper.ModifNotesEleves(mRowId);
                startManagingCursor(classe);
                ModifNote.setText(classe.getString(
                        classe.getColumnIndexOrThrow(ElevesDbAdapter.KEY_NOTE)));
                }
        }
     
        @Override
        protected void onSaveInstanceState(Bundle outState) {
            super.onSaveInstanceState(outState);
            saveState();
            outState.putSerializable(ElevesDbAdapter.KEY_ROWID, mRowId);
        }
     
        @Override
        protected void onPause() {
            super.onPause();
            saveState();
        }
     
        @Override
        protected void onResume() {
            super.onResume();
            populateFields();
        }
     
        private void saveState() {
            String note = ModifNote.getText().toString();
     
     
            if (mRowId == null) {
                long id = mDbHelper.createEleves2(note);
                if (id > 0) {
                    mRowId = id;
                }
            } else {
                mDbHelper.updateEleves2(mRowId, note);
            }
        }
     
    }
    Maintenant pour des raisons pratiques je souhaiterais que l'Edittext et la Listview soit sur le même écran, j'ai donc intégré le code n°2 dans le code n°1 comme suit :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    172
    173
    174
    175
    176
     
    import android.app.ListActivity;
    import android.content.Intent;
    import android.database.Cursor;
    import android.os.Bundle;
    import android.view.ContextMenu;
    import android.view.ContextMenu.ContextMenuInfo;
    import android.view.Menu;
    import android.view.MenuItem;
    import android.view.View;
    import android.widget.AdapterView.AdapterContextMenuInfo;
    import android.widget.EditText;
    import android.widget.ListView;
    import android.widget.SimpleCursorAdapter;
     
     
     
    public class SaisieNotes3 extends ListActivity {
        private static final int ACTIVITY_CREATE=0;
     
     
        private static final int INSERT_ID = Menu.FIRST;
        private static final int DELETE_ID = Menu.FIRST + 1;
    //ajout pour modification par EditText  
        private EditText EditTextModificationNote;
        private Long mRowId;
    //fin
     
        private ElevesDbAdapter mDbHelper;
     
     
        /** Called when the activity is first created. */
        @Override
        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.notes_avec_edittext);
            setTitle(R.string.titre_saisie_notes);
     
    //ajout pour modification par EditText  
            EditTextModificationNote = (EditText) findViewById(R.id.EditTextModificationNote);
     
     
            mRowId = (savedInstanceState == null) ? null :
                (Long) savedInstanceState.getSerializable(ElevesDbAdapter.KEY_ROWID);
    		if (mRowId == null) {
    			Bundle extras = getIntent().getExtras();
    			mRowId = extras != null ? extras.getLong(ElevesDbAdapter.KEY_ROWID)
    									: null;
    		}
    //fin 
     
            mDbHelper = new ElevesDbAdapter(this);
            mDbHelper.open();
            fillData();
            registerForContextMenu(getListView());
        }
     
     
        private void fillData() {
        	Cursor notesCursor = mDbHelper.RemplissageListView();
            startManagingCursor(notesCursor);
            SimpleCursorAdapter classe = new SimpleCursorAdapter (this,
           			R.layout.cursor_saisies_notes,notesCursor,new String[]{"note","nom"},
           			new int[]{R.id.note,R.id.nom}
           	);
            setListAdapter(classe);
     }
     
     
        @Override
        public boolean onCreateOptionsMenu(Menu menu) {
            super.onCreateOptionsMenu(menu);
            menu.add(0, INSERT_ID, 0, R.string.menu_insert);
            return true;
        }
     
        @Override
        public boolean onMenuItemSelected(int featureId, MenuItem item) {
            switch(item.getItemId()) {
                case INSERT_ID:
                	createEleves();
                    return true;
            }
            return super.onMenuItemSelected(featureId, item);
        }
     
        @Override
        public void onCreateContextMenu(ContextMenu menu, View v,
                ContextMenuInfo menuInfo) {
            super.onCreateContextMenu(menu, v, menuInfo);
            menu.add(0, DELETE_ID, 0, R.string.menu_delete);
        }
     
        @Override
        public boolean onContextItemSelected(MenuItem item) {
            switch(item.getItemId()) {
                case DELETE_ID:
                    AdapterContextMenuInfo info = (AdapterContextMenuInfo) item.getMenuInfo();
                    mDbHelper.deleteEleves(info.id);
                    fillData();
                    return true;
            }
            return super.onContextItemSelected(item);
        }
     
        private void createEleves() {
            Intent i = new Intent(this, CreationFichesEleves.class);
            startActivityForResult(i, ACTIVITY_CREATE);
        }
     
    //ajout pour modification par EditText
        @Override
        protected void onListItemClick(ListView l, View v, int position, long id) {
            super.onListItemClick(l, v, position, id);
            if (mRowId != null) {
                Cursor classe8 = mDbHelper.ModifNotesEleves(mRowId);
                startManagingCursor(classe8);
                EditTextModificationNote.setText(classe8.getString(
                      classe8.getColumnIndexOrThrow(ElevesDbAdapter.KEY_NOTE)));
     
               }
       }
     
        private void populateFields3() {
        	if (mRowId != null) {
                Cursor classe8 = mDbHelper.ModifNotesEleves(mRowId);
                startManagingCursor(classe8);
                EditTextModificationNote.setText(classe8.getString(
                      classe8.getColumnIndexOrThrow(ElevesDbAdapter.KEY_NOTE)));
     
               }
        }  
     
        @Override
        protected void onSaveInstanceState(Bundle outState) {
            super.onSaveInstanceState(outState);
            saveState();
            outState.putSerializable(ElevesDbAdapter.KEY_ROWID, mRowId);
        }
     
        @Override
        protected void onPause() {
            super.onPause();
            saveState();
        }
     
        @Override
        protected void onResume() {
            super.onResume();
            populateFields3();
        }
     
        private void saveState() {
            String note = EditTextModificationNote.getText().toString();
     
     
     
            if (mRowId == null) {
                long id = mDbHelper.createEleves2(note);
                if (id > 0) {
                    mRowId = id;
                }
            } else {
                mDbHelper.updateEleves2(mRowId, note);
            }
        }
    //FIN 
     
     
        @Override
        protected void onActivityResult(int requestCode, int resultCode, Intent intent) {
            super.onActivityResult(requestCode, resultCode, intent);
            fillData();
         }
     
    }
    Hélas cela ne fonctionne pas.

    Quelqu"un pourrait-il me dépanner, SVP

  2. #2
    Expert confirmé

    Avatar de Feanorin
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    4 589
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 4 589
    Par défaut
    Bonjour,

    Quelqu"un pourrait-il me dépanner, SVP
    Essaye de déboguer ton application pour voir son comportement.

    Partie Debug .
    http://nbenbourahla.developpez.com/t...s-application/

  3. #3
    Membre averti
    Homme Profil pro
    Enseignant
    Inscrit en
    Août 2011
    Messages
    25
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Bâtiment

    Informations forums :
    Inscription : Août 2011
    Messages : 25
    Par défaut Résolu - Modification Listview
    Salut à tous,

    Salut, après avoir récupéré un ordi et avoir fait des recherches sur le WEB, j'ai trouvé une solution à mon problème . En gros je dois récupérer l'ID de la note à modifier au défilement de la Listview puis afficher cette note dans l'EditText.

    J'ai mis cela dans un "onListItemClick"

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    public void onListItemClick(ListView l, View v, int position, long mRowId) {
        	super.onListItemClick(l, v, position, mRowId);
     
            Cursor classe8 = (Cursor) l.getItemAtPosition(position);
            String IdNote_à_modifier = classe8.getString(classe8.getColumnIndex(ElevesDbAdapter.KEY_ROWID));
            		MiseAjourID.setText(IdNote_à_modifier);
            String Note_à_modifier = classe8.getString(classe8.getColumnIndex(ElevesDbAdapter.KEY_NOTE));
                    ModificationNoteText.setText(Note_à_modifier);
     
        }
    Merci de m'avoir aiguillé pour mes recherches

    A+

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 4
    Dernier message: 14/07/2009, 00h59
  2. Insérer une image issue d'une bdd sql
    Par Colieri dans le forum Bases de données
    Réponses: 10
    Dernier message: 26/08/2007, 13h29
  3. [SQL] Formulaire checkbox construit avec les valeurs issues d'une BDD
    Par Samysam25 dans le forum PHP & Base de données
    Réponses: 5
    Dernier message: 25/04/2007, 17h55
  4. [MySQL] Remplir un array() avec des données issues d'une bdd
    Par fichtre! dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 18/12/2006, 17h03
  5. [MySQL] Modification des données d'une base par les membres
    Par pod1978 dans le forum PHP & Base de données
    Réponses: 5
    Dernier message: 22/03/2006, 17h25

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo