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 :

Passer des données (variable, fonction..) à ma vue


Sujet :

Android

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre très actif
    Homme Profil pro
    Développeur Logiciel
    Inscrit en
    Décembre 2015
    Messages
    230
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Logiciel
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2015
    Messages : 230
    Par défaut Passer des données (variable, fonction..) à ma vue
    Bonjour,

    Je cherche à passer un texte pour tester puis enfin une ArrayList de mon code JAVA sous Android Studio à ma vue (mes Layout).
    Cependant après plusieurs tutoriel je ne trouve pas comment faire.
    Pouvez-vous m'aider?

    Merci d'avance pour ceux qui m'aideront.

  2. #2
    Membre Expert
    Avatar de Hephaistos007
    Profil pro
    Enseignant Chercheur
    Inscrit en
    Décembre 2004
    Messages
    2 493
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Enseignement

    Informations forums :
    Inscription : Décembre 2004
    Messages : 2 493
    Par défaut
    Je ne comprend pas la question.
    Il vaut mieux mobiliser son intelligence sur des conneries que mobiliser sa connerie sur des choses intelligentes --- devise SHADOKS

    Kit de survie Android : mon guide pour apprendre à programmer sur Android, mon tutoriel sur les web services et enfin l'outil en ligne pour vous faire gagner du temps - N'oubliez pas de consulter la FAQ Android

  3. #3
    Membre très actif
    Homme Profil pro
    Développeur Logiciel
    Inscrit en
    Décembre 2015
    Messages
    230
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Logiciel
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2015
    Messages : 230
    Par défaut
    Enfaite, je développe une petite appli qui récupère une liste de musée depuis une API JSON.
    J'ai commencé le développement de tout ça.

    Mais Android Studio me met une erreur lors de la compilation :

    E/AndroidRuntime: FATAL EXCEPTION: main
    Process: com.example....listemusee, PID: 8325
    java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example....listemusee/com.example.....listemusee.MainActivity}: android.content.ActivityNotFoundException: Unable to find explicit activity class {com.example....listemusee/com.example....listemusee.Musee}; have you declared this activity in your AndroidManifest.xml?
    ...
    ...
    ...
    ...
    etc..

    Je cherche tant bien que mal, mais je ne trouve pas d'où peut provenir cette erreur.
    L'application se lance et se coupe directement dans l'émulateur.

    Voilà mon code:

    Me Main Activity:
    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
     
    public class MainActivity extends AppCompatActivity {
     
        ListView List;
        //ArrayAdapter<Musee> museeListe = new ArrayAdapter<>();
     
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
     
            //List = (ListView) findViewById(R.id.listeMusee);
            //List.setAdapter(Musee.afficherText());
            //this.startActivity(List);
            //List = (ListView) findViewById(R.id.listeMusee);
            setContentView(R.layout.activity_main);
            Intent intent = new Intent(this, Musee.class);
            //intent.putExtra(Musee.afficherText(), R.id.listeMusee);
            intent.putExtra(Musee.afficherText(), R.id.textMusee);
            this.startActivity(intent);
     
        }
     
    }
    Ma classe qui gère ma liste de musée:

    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
     
    public class Musee extends Activity {
     
        //@Test
     
        EditText message_text;
        public ArrayList<Musee> musees = new ArrayList<Musee>();
     
        private String datasetid;
        private String recordid;
        private String fields;
        private String periode_ouverture;
        private String nom_du_musee;
     
        //On appel le constructeur de notre class dans le main pour afficher la liste des musées?
        public Musee() {
            this.datasetid = "datasetid";
            this.recordid = "recordid";
            this.fields = "fields";
            this.periode_ouverture = "periode_ouverture";
            this.nom_du_musee = "nom_du_musee";
        }
     
        //On appel la methode getMusee() pour récupérer les musées que nous renvoie l'api JSON
     
        public String getDataSetid() {
            return datasetid;
        }
     
        public String getRecordid() {
            return recordid;
        }
     
        public String getfields() {
            return fields;
        }
     
        public String getPeriode_ouverture() {
            return periode_ouverture;
        }
     
        public String getNom_du_musee() {
            return nom_du_musee;
        }
     
        public void setDataSetid(String datasetid) {
            this.datasetid = datasetid;
        }
     
        public void setRecordid(String recordid) {
            this.recordid = recordid;
        }
     
        public void setFields(String fields) {
            this.fields = fields;
        }
     
        public void setPeriode_ouverture(String periode_ouverture) {
            this.periode_ouverture = periode_ouverture;
        }
     
        public void setNom_du_musee(String nom_du_musee) {
            this.nom_du_musee = nom_du_musee;
        }
     
        public void add(ArrayList<Musee> musees) {
            //Ajouter tout ces attributs dans mon ArrayList
     
        }
     
        //test pour deboger
        public static String afficherText() {
            String texte;
            texte = ("toto");
            return texte;
        }
     
        /**public static listeDesMusees (ArrayList<Musee>) {
            String texte;
            texte = System.out.println("test");
            return ArrayList<Musee> musee;
        }*/
     
    }
    La classe ou je récupère les données de mon API:

    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
     
    public class ApiListeMusee {
     
        public static ArrayList<Musee> getMusees() {
     
            ArrayList<Musee> musees = new ArrayList<Musee>();
     
            try {
                String myurl= "Mon Api JSON";
     
                URL url = new URL(myurl);
                HttpURLConnection connection = (HttpURLConnection) url.openConnection();
                connection.connect();
                InputStream inputStream = connection.getInputStream();
                /*
                 * InputStreamOperations est une classe complémentaire:
                 * Elle contient une méthode InputStreamToString.
                 */
                String result = InputStreamOperations.InputStreamToString(inputStream);
     
                // On récupère le JSON complet
                JSONObject jsonObject = new JSONObject(result);
                // On récupère le tableau d'objets qui nous concernent
                JSONArray array = new JSONArray(jsonObject.getString("musées"));
                // Pour tous les objets on récupère les infos
                for (int i = 0; i < array.length(); i++) {
                    // On récupère un objet JSON du tableau
                    JSONObject obj = new JSONObject(array.getString(i));
                    // On fait le lien sur les musées - Objet JSON
                    Musee musee = new Musee();
                    musee.setDataSetid(obj.getString("datasetid"));
                    musee.setRecordid(obj.getString("recordid"));
                    musee.setFields(obj.getString("fields"));
                    musee.setPeriode_ouverture(obj.getString("periode_ouverture"));
                    musee.setNom_du_musee(obj.getString("nom_du_musee"));
                    // On ajoute le musée à la liste
                    musee.add(musees);
     
                }
     
            } catch (Exception e) {
                e.printStackTrace();
            }
            // On retourne la liste des musées
            return musees;
        }
     
     
    }
    Si ça peut t'aider à m'aider.
    En espérant bien me sortir de ce problème.
    N'hésite pas non plus si tu vois des incohérence dans mon code.
    Merci d'avance pour l'aide apporter.

  4. #4
    Modérateur
    Avatar de grunk
    Homme Profil pro
    Lead dév - Architecte
    Inscrit en
    Août 2003
    Messages
    6 693
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Lead dév - Architecte
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2003
    Messages : 6 693
    Par défaut
    L'erreur est assez claire pourtant :
    have you declared this activity in your AndroidManifest.xml?
    Il faut donc que tu vérifies dans ton manifest si toutes tes activities sont bien présentent.

    Pourquoi avoir une activity qui dérive de AppCompatActivity et l'autre de Activity ?
    Pry Framework php5 | N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  5. #5
    Membre très actif
    Homme Profil pro
    Développeur Logiciel
    Inscrit en
    Décembre 2015
    Messages
    230
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Logiciel
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2015
    Messages : 230
    Par défaut
    Oui, mais dans mon Manifest.xml je ne vois pas quoi changer ?
    C'est justement pour ça que j'ai mis cette partie de l'erreur, j'ai un doute.

    Voilà ce que j'ai dans mon Manifest.xml

    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
     
    <?xml version="1.0" encoding="utf-8"?>
    <manifest xmlns:android="http://schemas.android.com/apk/res/android"
        package="com.example....listemusee">
     
        <application
            android:allowBackup="true"
            android:icon="@mipmap/ic_launcher"
            android:label="@string/app_name"
            android:supportsRtl="true"
            android:theme="@style/AppTheme">
            <uses-permission android:name="android.permission."/>
            <activity
                android:name=".MainActivity"
                android:label="@string/app_name"
                android:theme="@style/AppTheme.NoActionBar">
                <intent-filter>
                    <action android:name="android.intent.action.MAIN" />
     
                    <category android:name="android.intent.category.LAUNCHER" />
                </intent-filter>
            </activity>
        </application>
     
    </manifest>
    "Pourquoi avoir une activity qui dérive de AppCompatActivity et l'autre de Activity ? "
    Et bien le "AppCompatActivity" et l'extend de base pour le MainActivity.
    Pour le deuxième je voulais faire le lien entre mon activity principal (ma vue, celle qui va passer les données) et ma classe qui traite mon ArrayList.

  6. #6
    Membre Expert
    Avatar de Hephaistos007
    Profil pro
    Enseignant Chercheur
    Inscrit en
    Décembre 2004
    Messages
    2 493
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Enseignement

    Informations forums :
    Inscription : Décembre 2004
    Messages : 2 493
    Par défaut
    Musee.class n'a pas été déclarée comme Activity dans le manifest donc ca plante. Logique.
    Mais le pire c'est surtout que cette classe n'a pas à hériter de Activity (ou alors où sont les callbacks de base ? et il ne doit pas y avoir de constructeur).
    Il y a des problèmes de conception flagrants.
    Il vaut mieux mobiliser son intelligence sur des conneries que mobiliser sa connerie sur des choses intelligentes --- devise SHADOKS

    Kit de survie Android : mon guide pour apprendre à programmer sur Android, mon tutoriel sur les web services et enfin l'outil en ligne pour vous faire gagner du temps - N'oubliez pas de consulter la FAQ Android

Discussions similaires

  1. Passer des données d'une vue à l'autre
    Par clem_alain dans le forum AngularJS
    Réponses: 3
    Dernier message: 01/04/2016, 15h28
  2. Rechercher des données en fonction des variables d'un tableau
    Par BOU59000 dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 01/07/2009, 13h43
  3. [Débutant] Passer des données entre les fonctions callback
    Par Nouk_Lea dans le forum Interfaces Graphiques
    Réponses: 10
    Dernier message: 18/02/2009, 16h11
  4. [Données]Passer des données entre applet et Servlet
    Par CheryBen dans le forum Applets
    Réponses: 11
    Dernier message: 16/09/2005, 13h48
  5. Réponses: 6
    Dernier message: 16/09/2005, 10h56

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