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

Android Discussion :

Envoi des données depuis l'activité vers DialogInterface


Sujet :

Android

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau candidat au Club
    Femme Profil pro
    amatrice développement java pour Android
    Inscrit en
    Avril 2021
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : amatrice développement java pour Android

    Informations forums :
    Inscription : Avril 2021
    Messages : 2
    Par défaut Envoi des données depuis l'activité vers DialogInterface
    Bonjour,

    J'essai désespérément de faire passer des données issues d'une listView (modifiable) vers le DialogInterface afin de mettre à jour la listView.

    J'arrive à faire passer les données depuis le DialogInterface vers la listView mais pas l'inverse. Mon problème ce situe sur la 2ème DialogInterface :-/

    Merci pour votre aide.

    Ci-dessous mon 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
    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
    public class MainActivity extends AppCompatActivity {
     
        private FavouritesAdapter mFavAdapter;
        private FavouritesViewModel mFavViewModel;
     
        ListView listView;
     
     
        TextView tvName;
        TextView tvDate;
        TextView tvStock;
        TextView tvUrl;
        TextView tvUnit;
     
     
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
     
            listView = findViewById(R.id.listView);
     
            tvName = findViewById(R.id.tvNameItem);
            tvDate = findViewById(R.id.tvDateItem);
            tvStock = findViewById(R.id.tvStockItem);
            tvUrl = findViewById(R.id.tvUrlItem);
            tvUnit = findViewById(R.id.tvUnitItem);
     
     
            mFavViewModel = ViewModelProviders.of(this).get(FavouritesViewModel.class);
     
            List<Favourites> favourites = mFavViewModel.getFavs();
            mFavAdapter = new FavouritesAdapter(this, R.layout.list_item_row, favourites);
            listView.setAdapter(mFavAdapter);
     
        }
     
        public void showAlertDialogButtonClicked(View view) {
     
            // Create an alert builder
            AlertDialog.Builder builder = new AlertDialog.Builder(this);
     
            // set the custom layout
            final View customLayout = getLayoutInflater().inflate(R.layout.activity_custom_dialog, null);
            builder.setView(customLayout);
            builder.setPositiveButton("Ajouter", new DialogInterface.OnClickListener() {
                @Override
                public void onClick(DialogInterface dialog, int which) {
     
                    EditText name = customLayout.findViewById(R.id.edName);
                    EditText date = customLayout.findViewById(R.id.edDate);
                    EditText stock = customLayout.findViewById(R.id.edStock);
                    EditText url = customLayout.findViewById(R.id.edUrl);
                    EditText unit = customLayout.findViewById(R.id.edUnit);
     
                    mFavAdapter.add(mFavViewModel.addFav(name.getText().toString(),date.getText().toString(),
                            stock.getText().toString(),url.getText().toString(), unit.getText().toString()));
     
     
                }
            });
            builder.setNegativeButton("Cancel", null);
     
            AlertDialog dialog = builder.create();
            dialog.show();
     
        }
     
     
        public void deleteFav(View view) {
            View parent = (View) view.getParent();
            int position = (int) parent.getTag(R.id.POS);
            Favourites favourites = mFavAdapter.getItem(position);
            mFavViewModel.removeFav(favourites.mId);
            mFavAdapter.remove(favourites);
     
        }
     
        public class FavouritesAdapter extends ArrayAdapter<Favourites> {
     
     
            private class ViewHolder {
                TextView tvName;
                TextView tvDate;
                TextView tvStock;
                TextView tvUrl;
                TextView tvUnit;
            }
     
            public FavouritesAdapter(Context context, int layoutResourceId, List<Favourites> todos) {
                super(context, layoutResourceId, todos);
     
            }
     
            @Override
            @NonNull
            public View getView(int position, View convertView, ViewGroup parent) {
     
                Favourites favourites = getItem(position);
                ViewHolder viewHolder;
                if (convertView == null) {
                    viewHolder = new ViewHolder();
                    LayoutInflater vi = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE);
                    convertView = vi.inflate(R.layout.list_item_row, parent, false);
                    viewHolder.tvName = convertView.findViewById(R.id.tvNameItem);
                    viewHolder.tvDate = convertView.findViewById(R.id.tvDateItem);
                    viewHolder.tvStock = convertView.findViewById(R.id.tvStockItem);
                    viewHolder.tvUrl = convertView.findViewById(R.id.tvUrlItem);
                    viewHolder.tvUnit = convertView.findViewById(R.id.tvUnitItem);
     
                    convertView.setTag(R.id.VH, viewHolder);
     
                    convertView.setOnClickListener(new View.OnClickListener() {
                        @Override
                        public void onClick(View v) {
     
                            AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this);
     
                            // set the custom layout
                            final View customLayout = getLayoutInflater().inflate(R.layout.activity_custom_dialog, null);
                            builder.setView(customLayout);
                            builder.setPositiveButton("Modifier", new DialogInterface.OnClickListener() {
                                @Override
                                public void onClick(DialogInterface dialog, int which) {
     
                                    EditText name = customLayout.findViewById(R.id.edName);
                                    EditText date = customLayout.findViewById(R.id.edDate);
                                    EditText stock = customLayout.findViewById(R.id.edStock);
                                    EditText url = customLayout.findViewById(R.id.edUrl);
                                    EditText unit = customLayout.findViewById(R.id.edUnit);
     
                                    mFavViewModel.removeFav(favourites.mId);
                                    mFavAdapter.remove(favourites);
     
                                    mFavAdapter.add(mFavViewModel.addFav(name.getText().toString(),date.getText().toString(),
                                            stock.getText().toString(),url.getText().toString(), unit.getText().toString()));
     
                                }
                            });
                            builder.setNegativeButton("Cancel", null);
     
                            AlertDialog dialog = builder.create();
                            dialog.show();
     
                        }
                    });
     
                } else {
                    viewHolder = (ViewHolder) convertView.getTag(R.id.VH);
     
                }
     
                viewHolder.tvName.setText(favourites.mName);
                viewHolder.tvDate.setText(favourites.mDate);
                viewHolder.tvStock.setText(favourites.mStock);
                viewHolder.tvUrl.setText(favourites.mUrl);
                viewHolder.tvUnit.setText(favourites.mUnit);
     
                convertView.setTag(R.id.POS, position);
                return convertView;
     
            }
        }
     
    }

  2. #2
    Nouveau candidat au Club
    Femme Profil pro
    amatrice développement java pour Android
    Inscrit en
    Avril 2021
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : amatrice développement java pour Android

    Informations forums :
    Inscription : Avril 2021
    Messages : 2
    Par défaut Modifications apportées
    Modifications que j'y ai apporté et qui fonctionnent :

    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
          @Override
            @NonNull
            public View getView(int position, View convertView, ViewGroup parent) {
     
                Favourites favourites = getItem(position);
                ViewHolder viewHolder;
                if (convertView == null) {
                    viewHolder = new ViewHolder();
                    LayoutInflater vi = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE);
                    convertView = vi.inflate(R.layout.list_item_row, parent, false);
                    viewHolder.tvName = convertView.findViewById(R.id.tvNameItem);
                    viewHolder.tvDate = convertView.findViewById(R.id.tvDateItem);
                    viewHolder.tvStock = convertView.findViewById(R.id.tvStockItem);
                    viewHolder.tvUrl = convertView.findViewById(R.id.tvUrlItem);
                    viewHolder.tvUnit = convertView.findViewById(R.id.tvUnitItem);
     
                    convertView.setTag(R.id.VH, viewHolder);
     
     
     
                } else {
                    viewHolder = (ViewHolder) convertView.getTag(R.id.VH);
     
     
                }
     
                viewHolder.tvName.setText(favourites.mName);
                viewHolder.tvDate.setText(favourites.mDate);
                viewHolder.tvStock.setText(favourites.mStock);
                viewHolder.tvUrl.setText(favourites.mUrl);
                viewHolder.tvUnit.setText(favourites.mUnit);
     
                convertView.setTag(R.id.POS, position);
     
               String oldName = viewHolder.tvName.getText().toString();
               String oldDate = viewHolder.tvDate.getText().toString();
               String oldStock = viewHolder.tvStock.getText().toString();
               String oldUrl = viewHolder.tvUrl.getText().toString();
               String oldUnit = viewHolder.tvUnit.getText().toString();
     
                convertView.setOnClickListener(new View.OnClickListener() {
                    @Override
                    public void onClick(View v) {
     
                        AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this);
     
                        // set the custom layout
                        final View customLayout = getLayoutInflater().inflate(R.layout.activity_custom_dialog, null);
     
                        EditText name = customLayout.findViewById(R.id.edName);
                        EditText date = customLayout.findViewById(R.id.edDate);
                        EditText stock = customLayout.findViewById(R.id.edStock);
                        EditText url = customLayout.findViewById(R.id.edUrl);
                        EditText unit = customLayout.findViewById(R.id.edUnit);
     
     
                        name.setText(oldName);
                        date.setText(oldDate);
                        stock.setText(oldStock);
                        url.setText(oldUrl);
                        unit.setText(oldUnit);
     
                        builder.setView(customLayout);
     
     
                        builder.setPositiveButton("Modifier", new DialogInterface.OnClickListener() {
                            @Override
                            public void onClick(DialogInterface dialog, int which) {
     
     
                                mFavViewModel.removeFav(favourites.mId);
     
     
                                mFavAdapter.remove(favourites);
     
                                viewHolder.tvName.setText(favourites.mName);
                                viewHolder.tvDate.setText(favourites.mDate);
                                viewHolder.tvStock.setText(favourites.mStock);
                                viewHolder.tvUrl.setText(favourites.mUrl);
                                viewHolder.tvUnit.setText(favourites.mUnit);
     
     
                                mFavAdapter.add(mFavViewModel.addFav(name.getText().toString(),date.getText().toString(),
                                        stock.getText().toString(),url.getText().toString(), unit.getText().toString()));
     
     
                            }
                        });
                        builder.setNegativeButton("Cancel", null);
     
                        AlertDialog dialog = builder.create();
                        dialog.show();
     
                    }
                });
     
     
     
                return convertView;
     
            }
        }
     
    }

Discussions similaires

  1. Réponses: 0
    Dernier message: 21/04/2014, 17h22
  2. Réponses: 19
    Dernier message: 25/10/2011, 16h55
  3. envoi des données Xml de servlet vers page JSP
    Par MG-openssl dans le forum Servlets/JSP
    Réponses: 3
    Dernier message: 10/04/2011, 20h49
  4. Pousser des données depuis le serveur vers le client dans le header HTTP
    Par Barsy dans le forum Général Conception Web
    Réponses: 2
    Dernier message: 31/12/2010, 14h03
  5. [MySQL] inserer des données depuis un formulaire vers MYSQL
    Par lol88 dans le forum PHP & Base de données
    Réponses: 5
    Dernier message: 15/12/2009, 23h58

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