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 :

Probleme dans une activité avec AppCompatActivity


Sujet :

Android

  1. #1
    Membre du Club
    Homme Profil pro
    Administrateur Télécoms
    Inscrit en
    Décembre 2010
    Messages
    67
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Administrateur Télécoms
    Secteur : Service public

    Informations forums :
    Inscription : Décembre 2010
    Messages : 67
    Points : 52
    Points
    52
    Par défaut Probleme dans une activité avec AppCompatActivity
    Bonjour la communauté,
    je reviens sur le site après avoir été absent depuis longtemps. Je félicite toute l'équipe et les participants sur les nombreux tutos et les aides cela m a permis de progresser.
    je suis en train d améliorer une vieille application que j avais développé et je bute sur un problème bête de clic sur un bouton. je n ai pas d erreur dans mon code que je vous joins ,mais cela me plante l application. J utilise ce code sur toute les autres activités et cela fonctionne...
    Mon Activité lance deux fragments et elle possède un menu qui lui est propre j ai bien instensié l appel du fichier xml et mon titre s affiche . le bouton retour est reconnu mais quand je clic dessus l application plante. je signale que le titre et le bouton son dans le même fichier xml.
    j ai bien regarder de nombreux commentaire et tutos sur la fonction OnclicListener et j avoue je bloque.
    je pense que par rapport a mes anciennes classes activity dans ma classe LancementFragment l' extends est AppCompatActivity et non Activity tout cours ,
    je ne connais pas bien la différence.

    donc voici mon code de l activité: en rouge les parties qui concerne ce maudit bouton.

    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
      
    
    
    public class LancementFragment   extends AppCompatActivity  {
    
    
    
    
        ImageButton retour;
        TextView titre;
    
        String  resultproduits;
    
    
    
    
        static int resultatclic;
        public static final int CODE_GO_TO_HOME = 0;
    
    
    
    
    
        private SectionsPagerAdapter mSectionsPagerAdapter;
    
    
        private ViewPager mViewPager;
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
    
    
            Bundle extras = getIntent().getExtras();
            resultproduits = extras.getString("produitsInter");// recup nom du produit
    
    
    
    
    
            TextView titre =(TextView)findViewById ( R.id.titre ); // gestion affichage
            titre.setText ( String.valueOf ( resultproduits +" BLEVE ")); // affichage nom du produit
    
            retour = (ImageButton)findViewById ( R.id.imageButtonRetourBleve ); //gestion du bouton
            retour.setOnClickListener ( (View.OnClickListener) this );//ecoute sur clic
    
    
                Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
            setSupportActionBar(toolbar);
    
    
    
    
            mSectionsPagerAdapter = new SectionsPagerAdapter(getSupportFragmentManager());
    
    
            mViewPager = (ViewPager) findViewById(R.id.container);
            mViewPager.setAdapter(mSectionsPagerAdapter);
    
            TabLayout tabLayout = (TabLayout) findViewById(R.id.tabs);
            tabLayout.setupWithViewPager(mViewPager);
    
    
        }
    
        public void onClick(View v) {    // action sur clic bouon retour
            if (v == retour) {
    
                Intent retourIntent = new Intent(this, Intervention.class);
                setResult(CODE_GO_TO_HOME);
                finish();
    
            }
        }
    
        @Override
        public boolean onCreateOptionsMenu(Menu menu) {
    
            getMenuInflater().inflate(R.menu.menu_main, menu);
    
            return true;
    
        }
    
    
    
        @Override
        public boolean onOptionsItemSelected(MenuItem item) {
    
            int id = item.getItemId();
    
    
            if (id == R.id.action_settings) {
                return true;
            }
    
            return super.onOptionsItemSelected(item);
        }
    
    
    
        public static class PlaceholderFragment extends Fragment {
    
            private static final String ARG_SECTION_NUMBER = "section_number";
    
            public PlaceholderFragment() {
            }
    
    
            public static PlaceholderFragment newInstance(int sectionNumber) {
                PlaceholderFragment fragment = new PlaceholderFragment();
                Bundle args = new Bundle();
                args.putInt(ARG_SECTION_NUMBER, sectionNumber);
                fragment.setArguments(args);
                return fragment;
            }
    
            @Override
            public View onCreateView(LayoutInflater inflater, ViewGroup container,
                                     Bundle savedInstanceState) {
                View rootView = inflater.inflate(R.layout.fragment_main, container, false);
    
    
    
    
    
                    return rootView;
            }
    
        }
    
    
        public class SectionsPagerAdapter extends FragmentPagerAdapter {
    
            private String fragments []= {"Calcul","Carte"};
    
            public SectionsPagerAdapter(FragmentManager fm) {
                super(fm);
            }
    
            @Override
            public Fragment getItem(int position) {
    
                switch (position) {
                    case 0:
                        return new Tab1();
                    case 1:
                        return new Tab2();
                    default:
                        return null;
    
    
                }
    
            }
    
            @Override
            public int getCount() {
    
                return fragments.length;
            }
    
            @Override
            public CharSequence getPageTitle(int position) {
    
                return fragments[position];
            }
        }
    
    
    
        }





    et voici le logCAt avec le message d'erreur
    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
     
     
    10-30 11:03:39.165 16820-16820/com.loleas.explosionthermic E/AndroidRuntime: FATAL EXCEPTION: main
                                                                                 Process: com.loleas.explosionthermic, PID: 16820
                                                                                 java.lang.RuntimeException: Unable to start activity ComponentInfo{com.loleas.explosionthermic/com.loleas.explosionthermic.LancementFragment}: java.lang.ClassCastException: com.loleas.explosionthermic.LancementFragment cannot be cast to android.view.View$OnClickListener
                                                                                     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2658)
                                                                                     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2723)
                                                                                     at android.app.ActivityThread.access$900(ActivityThread.java:172)
                                                                                     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1422)
                                                                                     at android.os.Handler.dispatchMessage(Handler.java:102)
                                                                                     at android.os.Looper.loop(Looper.java:145)
                                                                                     at android.app.ActivityThread.main(ActivityThread.java:5832)
                                                                                     at java.lang.reflect.Method.invoke(Native Method)
                                                                                     at java.lang.reflect.Method.invoke(Method.java:372)
                                                                                     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1399)
                                                                                     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1194)
                                                                                  Caused by: java.lang.ClassCastException: com.loleas.explosionthermic.LancementFragment cannot be cast to android.view.View$OnClickListener
                                                                                     at com.loleas.explosionthermic.LancementFragment.onCreate(LancementFragment.java:70)
                                                                                     at android.app.Activity.performCreate(Activity.java:6221)
                                                                                     at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1119)
                                                                                     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2611)
                                                                                     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2723)*
                                                                                     at android.app.ActivityThread.access$900(ActivityThread.java:172)*
                                                                                     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1422)*
                                                                                     at android.os.Handler.dispatchMessage(Handler.java:102)*
                                                                                     at android.os.Looper.loop(Looper.java:145)*
                                                                                     at android.app.ActivityThread.main(ActivityThread.java:5832)*
                                                                                     at java.lang.reflect.Method.invoke(Native Method)*
                                                                                     at java.lang.reflect.Method.invoke(Method.java:372)*
                                                                                     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1399)*
                                                                                     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1194)*

    Merci par avance si vous avez une piste ou une solution . n'étant pas codeur a la base.

    Cordialement Eric

  2. #2
    Membre du Club
    Homme Profil pro
    Administrateur Télécoms
    Inscrit en
    Décembre 2010
    Messages
    67
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Administrateur Télécoms
    Secteur : Service public

    Informations forums :
    Inscription : Décembre 2010
    Messages : 67
    Points : 52
    Points
    52
    Par défaut suite et Fin
    De retour et ayant essayer plusieurs méthodes je viens de trouver la solution dont je vous fait par:

    l erreur que j ai faite et que je n ai pas la view dans la fonction OnclicListener .je vous laisse le nouveau code avec en vert la partie qui fonctionne.
    ayant beaucoup cherché j espère que cette discussion sera utile à tous les débutants comme moi
    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
    177
    178
    179
    180
    181
    182
    183
    184
    185
    186
    187
    188
    189
    190
    191
    192
    193
    194
    195
    196
    197
    198
    199
    200
    201
    202
    203
    204
    
    package com.loleas.explosionthermic;
    
    import android.content.Intent;
    import android.os.Bundle;
    import android.support.design.widget.TabLayout;
    import android.support.v4.app.Fragment;
    import android.support.v4.app.FragmentManager;
    import android.support.v4.app.FragmentPagerAdapter;
    import android.support.v4.view.ViewPager;
    import android.support.v7.app.AppCompatActivity;
    import android.support.v7.widget.Toolbar;
    import android.view.Gravity;
    import android.view.LayoutInflater;
    import android.view.Menu;
    import android.view.MenuItem;
    import android.view.View;
    import android.view.ViewGroup;
    import android.widget.EditText;
    import android.widget.ImageButton;
    import android.widget.LinearLayout;
    import android.widget.TextView;
    
    /**
     * Created by yesyes on 28/10/2017.
     */
    
    
    public class LancementFragment   extends AppCompatActivity  {
    
    
    
    
        ImageButton retour;
        TextView titre;
    
        String  resultproduits;
    
    
    
    
        static int resultatclic;
        public static final int CODE_GO_TO_HOME = 0;
    
    
    
    
    
        private SectionsPagerAdapter mSectionsPagerAdapter;
    
    
        private ViewPager mViewPager;
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
    
    
            Bundle extras = getIntent().getExtras();
            resultproduits = extras.getString("produitsInter");// recup nom du produit
    
    
    
    
    
            TextView titre =(TextView)findViewById ( R.id.titre ); // gestion affichage
            titre.setText ( String.valueOf ( resultproduits +" BLEVE ")); // affichage nom du produit
    
            retour = (ImageButton)findViewById ( R.id.imageButtonRetourBleve ); //gestion du bouton
            retour.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
    
                    public void onClick(View v) {
    
                    Intent retourIntent = new Intent(LancementFragment.this, Intervention.class);
                    setResult(CODE_GO_TO_HOME);
                    finish();
                }
            });
                }
            });
    
                Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
            setSupportActionBar(toolbar);
    
    
    
    
            mSectionsPagerAdapter = new SectionsPagerAdapter(getSupportFragmentManager());
    
    
            mViewPager = (ViewPager) findViewById(R.id.container);
            mViewPager.setAdapter(mSectionsPagerAdapter);
    
            TabLayout tabLayout = (TabLayout) findViewById(R.id.tabs);
            tabLayout.setupWithViewPager(mViewPager);
    
    
        }
    
    
    
    
    
        @Override
        public boolean onCreateOptionsMenu(Menu menu) {
    
            getMenuInflater().inflate(R.menu.menu_main, menu);
    
            return true;
    
        }
    
    
    
        @Override
        public boolean onOptionsItemSelected(MenuItem item) {
    
            int id = item.getItemId();
    
    
            if (id == R.id.action_settings) {
                return true;
            }
    
            return super.onOptionsItemSelected(item);
        }
    
    
    
        public static class PlaceholderFragment extends Fragment {
    
            private static final String ARG_SECTION_NUMBER = "section_number";
    
            public PlaceholderFragment() {
            }
    
    
            public static PlaceholderFragment newInstance(int sectionNumber) {
                PlaceholderFragment fragment = new PlaceholderFragment();
                Bundle args = new Bundle();
                args.putInt(ARG_SECTION_NUMBER, sectionNumber);
                fragment.setArguments(args);
                return fragment;
            }
    
            @Override
            public View onCreateView(LayoutInflater inflater, ViewGroup container,
                                     Bundle savedInstanceState) {
                View rootView = inflater.inflate(R.layout.fragment_main, container, false);
    
    
    
    
    
                    return rootView;
            }
    
        }
    
    
        public class SectionsPagerAdapter extends FragmentPagerAdapter {
    
            private String fragments []= {"Calcul","Carte"};
    
            public SectionsPagerAdapter(FragmentManager fm) {
                super(fm);
            }
    
            @Override
            public Fragment getItem(int position) {
    
                switch (position) {
                    case 0:
                        return new Tab1();
                    case 1:
                        return new Tab2();
                    default:
                        return null;
    
    
                }
    
            }
    
            @Override
            public int getCount() {
    
                return fragments.length;
            }
    
            @Override
            public CharSequence getPageTitle(int position) {
    
                return fragments[position];
            }
        }
    
    
    
        }
    J espère que cela sera utile pour les personnes ayant se genre de problème, désolé d avoir fit une discussion pour rien

    cordialement Eric

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

Discussions similaires

  1. Réponses: 6
    Dernier message: 30/05/2016, 18h31
  2. Probleme dans une requete avec Fichier Excel
    Par FightinG712 dans le forum QlikView
    Réponses: 10
    Dernier message: 17/05/2013, 17h31
  3. Réponses: 5
    Dernier message: 05/02/2010, 09h49
  4. probleme de lien dans une frame avec firefox
    Par delercem dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 09/07/2008, 11h50
  5. probleme virgule dans une ListBox avec stringht
    Par yomane 51 dans le forum Delphi
    Réponses: 1
    Dernier message: 10/01/2007, 17h47

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