Afficher données Android listview MySQL

iKelSilver - 2 mars 2019 à 14:56
Twinuts Messages postés 5375 Date d'inscription dimanche 4 mai 2003 Statut Modérateur Dernière intervention 14 juin 2023 - 17 mars 2019 à 11:44
Bonjour,

J'ai une inquiétude depuis sur l'affichage des données une base de données vers mon application mobile. J'arrive à faire l'insertion, tout marche bien jusqu'ici. Sauf que je n'arrive pas comment on utilise
ListView
.
J'ai parcouru le web en vain. Tout ce que je trouve est toujours complexe.
Je veux juste savoir s'il y a un code simple qui permet de sélectionner les données depuis ma base de données MySQL vers mon application mobile en utilisant
ListView
?

Merci d'avance.
A voir également:

1 réponse

Twinuts Messages postés 5375 Date d'inscription dimanche 4 mai 2003 Statut Modérateur Dernière intervention 14 juin 2023 111
11 mars 2019 à 11:37
Salut,

Tu as regardé ce lien (ICI)?

0
Bonsoir Twinuts,

En réalité, je voyais ça de génie. Mais, après avoir lu attentivement le lien que vous m'avez envoyé, j'ai compris que, c'est vraiment un simple. Je m'en sors maintenant facilement.

Mais, j'ai toujours un soucis. Par exemple, je veux afficher une depuis ma base de données dans mon
TextView
, mais, je ne sais pas comment utiliser par exemple :
ImageView maPhoto = (ImageView) convertView.findViewById(R.id.idPhoto) ; maPhoto.setImage(insertionPhoto.get(position).getMaPhoto()) ; 

Quand je le fais comme cela, je reçois des erreurs dans Android studio.
Comment faire pour mettre à jour la photo en utilisant son ID ?

Merci d'avance
0
Twinuts Messages postés 5375 Date d'inscription dimanche 4 mai 2003 Statut Modérateur Dernière intervention 14 juin 2023 111
15 mars 2019 à 14:36
Salut,

Je n'ai pas bien compris le problème.
Quel erreur ?
Quel est le format retourné par getMaPhoto ?
0
Bonjour Twinuts,

Au fait, ça retourne un String, mais, quand je veux mettre à jour le ImageView, il me parle de Incompatibilité de type.
Comme c'est le lien de l'image que je reçois depuis MySQL, je le récupère dans un String et faire une mise à jour de ImageView afin de l'afficher.
Est-ce que c'est le type String que je dois utiliser pour récupérer le lien de la photo ou c'est un autre type ?

Merci d'avance
0
Twinuts Messages postés 5375 Date d'inscription dimanche 4 mai 2003 Statut Modérateur Dernière intervention 14 juin 2023 111
Modifié le 17 mars 2019 à 11:46
Salut,

Pour mettre à jour un ImageView depuis une URL il suffit de procéder comme suit:
L'exemple ci-dessous est fait au plus simple et devrait normalement être utilisé avec un AsyncTask
void refreshImage(Activity myActivity, ImageView imageView, String url)
{
  new Thread(() ->
  {
    try 
    {
      HttpURLConnection connection = (HttpURLConnection) new URL(url).openConnection();
      connection.connect();
      InputStream input = connection.getInputStream();
      final Bitmap bitmap = BitmapFactory.decodeStream(input);
      input.close();
      connection.disconnect();
      myActivity.runOnUiThread(() -> imageView.setImageBitmap(bitmap));
    } 
    catch (Exception e) 
    {
      Log.e(getClass().getSimpleName(), "Exception: " + e.getMessage(), e);
      myActivity.runOnUiThread(() -> 
    imageView.setImageResource(R.mipmap.image_not_found));
    }
  }).start();
}


Il te suffit de mettre cette routine dans le getView de l'adapter de ta ListView.
...
class ViewHolder
{
  ...
  ImageView maPhoto;
  ...
}

@Override
public @NonNull View getView(final int position, final View convertView,
                      @NonNull final ViewGroup parent) 
{
  View v = convertView;
  ViewHolder holder;
  if (v == null) 
  {
    final ViewGroup nullParent = null;
    final LayoutInflater inflater  = (LayoutInflater) mActivity.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
    assert inflater != null;
    v = inflater .inflate(R.layout.theview, nullParent, false);
    holder = new ViewHolder();
    /* init du viewholder */
    ...
    holder.maPhoto = v.findViewById(R.id.idPhoto);
    ...
    v.setTag(holder);
  } 
  else 
  {
    holder = (ViewHolder) v.getTag();
  }
  ...
  refreshImage(mActivity, holder.maPhoto, insertionPhoto.get(position).getMaPhoto());
  ...
}


Ici les images vont êtres rafraîchies de manière asynchrone.
0
Rejoignez-nous