Partage
  • Partager sur Facebook
  • Partager sur Twitter

Afficher ma liste grace à une ListView

Sujet résolu
    11 septembre 2021 à 17:39:34

    Bonjour!

    Je suis nouveau sur le forum et j'aurais besoin de quelques explications. 

    J'ai pour projet d'afficher des objets d'une ArrayList dans une listView, le problème est que je suis un peu perdu sur la façon de procéder.

    J'ai normalement déjà crée ma liste, mais je n'arrive pas du tout à l'afficher sachant qu'elle se situe dans ma Class FormeMgr et non dans ma Class MainActivity.

    Merci d'avance pour vos futurs conseils et explications.

    package com.example.listealatoire;
    
    import androidx.annotation.RequiresApi;
    import androidx.appcompat.app.AppCompatActivity;
    
    import android.content.Intent;
    import android.graphics.Color;
    import android.graphics.ColorSpace;
    import android.os.Build;
    import android.os.Bundle;
    import android.view.View;
    import android.widget.ArrayAdapter;
    import android.widget.Button;
    import android.widget.ListView;
    
    import java.util.ArrayList;
    import java.util.List;
    import java.util.Vector;
    
    class MainActivity:
    @RequiresApi(api = Build.VERSION_CODES.O) public class MainActivity extends AppCompatActivity { private Button button; private Button exit; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); // ListView listedeForme = (ListView) findViewById(R.id.listview); // // // // ArrayAdapter<Forme> arrayAdapter = new ArrayAdapter<Forme>( // this, android.R.layout.simple_list_item_1, ); button = findViewById(R.id.button); button.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { FormeMgr.getInstance(); openActivity2(); } }); exit = findViewById(R.id.exit); exit.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { finish(); } }); } public void openActivity2() { Intent intent; intent = new Intent(this, Activity2.class); startActivity(intent); } // // // }


    Class FormeMgr:

    ackage com.example.listealatoire;
    
    import android.graphics.Color;
    import android.os.Build;
    import android.widget.ArrayAdapter;
    import android.widget.ListView;
    
    import androidx.annotation.RequiresApi;
    
    import java.util.ArrayList;
    import java.util.List;
    import java.util.Random;
    import java.util.Vector;
    
    @RequiresApi(api = Build.VERSION_CODES.O)
    public class FormeMgr{
    
        private static FormeMgr instance = new FormeMgr();
        private ArrayList<Forme> liste;
    
        private FormeMgr()
        {
            liste = new ArrayList<Forme>();
            Init();
            getArray();
            System.out.println(liste);
        }
    
        private void Init() {
            int min = 1;
            int max = 3;
            Random random =  new Random();
            for (int i = 0; i < 100; i++){
                switch (random.nextInt(max - min) + min) {
                    case 1:
                        liste.add(createCarre());
                        break;
                    case 2:
                        liste.add(createHexagone());
                        break;
                    case 3:
                        liste.add(createPentagone());
                        break;
                }
            }
        }
    
        private Pentagone createPentagone() {
            Pentagone pentagone = new Pentagone(createColor(), "pentagone",generateVectorLongeur(5));
    return pentagone;
        }
    
        private Hexagone createHexagone() {
            Hexagone hexagone = new Hexagone(createColor(), "hexagone", generateVectorLongeur(6));
            return hexagone;
        }
    
        private Carre createCarre() {
            Carre carre = new Carre(createColor(), "carre", 15);
    return carre;
    
        }
        private int createColor() {
            int min = 1;
            int max = 3;
            Random random =  new Random();
            int r = random.nextInt(max - min) + min;
            int g = random.nextInt(max - min) + min;
            int b = random.nextInt(max - min) + min;
            return Color.rgb(r,g,b);
        }
        private Vector<Integer> generateVectorLongeur(int nblg){
    
            int min = 1;
            int max = 255;
            Random random =  new Random();
    
           Vector<Integer> newLg = new Vector<Integer>();
           for(int i = 0; i < nblg; i++);
            {
                newLg.add(random.nextInt(max - min) + min);
            }
            return newLg;
        }
    
        public ArrayList getArray()
        {
            return this.liste;
        }
        public static FormeMgr getInstance()
        {
            return instance;
    
        }
    
    }
    
    
    



    -
    Edité par BenoitBlanc1 11 septembre 2021 à 17:50:44

    • Partager sur Facebook
    • Partager sur Twitter

    Afficher ma liste grace à une ListView

    × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
    × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
    • Editeur
    • Markdown