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 Java Discussion :

problème d'Intent dans une class importer


Sujet :

Android Java

  1. #1
    Membre à l'essai
    Homme Profil pro
    android
    Inscrit en
    mai 2013
    Messages
    21
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : android
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : mai 2013
    Messages : 21
    Points : 22
    Points
    22
    Par défaut problème d'Intent dans une class importer
    bonjour,

    mon appli crash suite à la demande de l'Intent de ma class timerTime importer dans toute les vues de l'app.

    ma class timerTime est comme ceci:
    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
    public class timerTime extends AppCompatActivity {
     
        /** timer */
        private static Timer timer;
        private static TimerTask timerTask;
        private final static Handler handler = new Handler();
     
        private static Context mCtx = null;
     
        public timerTime(Context ctxt){
            this.mCtx = ctxt;
        }
     
        public void startTimer(){
            Log.i("startTimer()","start 30000");
            timer = new Timer();
            loadTimer(/*theContext*/);
            timer.schedule(timerTask,30000);
        }
     
        public void startTimer(int time){
            Log.i("startTimer()","time => "+time);
            timer = new Timer();
            loadTimer();
            timer.schedule(timerTask,time);
        }
     
        public static void stopTimer(){
            if (timer != null) {
                Log.i("stopTimer()","stop");
                timer.cancel();
                timer = null;
     
            }
        }
        public void loadTimer(){
            timerTask = new TimerTask(){
                public void run(){
                    handler.post(new Runnable(){
                        @Override
                        public void run() {
                            stopTimer();
                            Intent i = new Intent(mCtx, MainActivity.class);
                            startActivity(i);
                        }
                    });
                }
            };
        }
    }
    et voici une des vues qui l'utilise
    je n'ai mis ici que ce qui est nécessaire pour l'exemple
    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
    public class logon extends AppCompatActivity implements View.OnTouchListener, View.OnClickListener {
     
        private EditText et_login, et_mdp;
        /** timer */
        private timerTime timerTime = new timerTime(this);
     
        private boolean update = false;
     
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            hideNavigationBar();
            setContentView(R.layout.logon);
            hideNavigationBar();
     
            et_login = (EditText)findViewById(R.id.et_login);
            et_mdp = (EditText)findViewById(R.id.et_mdp);
     
            et_login.setOnTouchListener(this);
            et_mdp.setOnTouchListener(this);
     
            et_login.addTextChangedListener(verifForTimeLodin);
            et_mdp.addTextChangedListener(verifForTimeMdp);
        }
     
        @Override
        public boolean onTouch(View v, MotionEvent event){
     
            if (v == et_login){
                log("et_login: " + stringValue(event));
            }
            if (v == et_mdp) {
                log("et_mdp: " + stringValue(event));
            }
            return false;
        }
        @Override
        public boolean onTouchEvent(MotionEvent event) {
            log("Activity: " + stringValue(event));
            return true;
        }
        private String stringValue(MotionEvent event) {
     
            final int action = event.getAction();
     
            switch (action) {
                case MotionEvent.ACTION_DOWN:
                    timerTime.stopTimer();
                    timerTime.startTimer();
                    return "ACTION_DOWN";
                case MotionEvent.ACTION_MOVE:
                    return "ACTION_MOVE";
                case MotionEvent.ACTION_UP:
                    return "ACTION_UP";
                case MotionEvent.ACTION_CANCEL:
                    return "ACTION_CANCEL";
            }
     
            return "";
        }
     
        @Override
        protected void onResume() {
            timerTime.startTimer(10000);
            super.onResume();
        }
        TextWatcher verifForTimeLodin = new TextWatcher() {
            public void onTextChanged(CharSequence s, int start, int before, int count) {
     
            }
     
            public void beforeTextChanged(CharSequence s, int start, int count, int after) {
     
            }
     
            public void afterTextChanged(Editable s) {
                if (update){
                    update = false;
                    timerTime.startTimer();
                }else {
                    timerTime.stopTimer();
                    timerTime.startTimer();
                }
            }
        };
        TextWatcher verifForTimeMdp = new TextWatcher() {
            public void onTextChanged(CharSequence s, int start, int before, int count) {
     
            }
     
            public void beforeTextChanged(CharSequence s, int start, int count, int after) {
     
            }
     
            public void afterTextChanged(Editable s) {
                if (update){
                    update = false;
                    timerTime.startTimer();
                }else {
                    timerTime.stopTimer();
                    timerTime.startTimer();
                }
            }
        };
    }
    et dans le log quand il crash
    java.lang.NullPointerException: Attempt to invoke virtual method 'android.app.ActivityThread$ApplicationThread android.app.ActivityThread.getApplicationThread()' on a null object reference
    tools.timerTime$1$1.run(timerTime.java:71)
    qui est :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Intent i = new Intent(mCtx, MainActivity.class);
    une idée?

  2. #2
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    novembre 2016
    Messages
    52
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : novembre 2016
    Messages : 52
    Points : 37
    Points
    37
    Par défaut
    Bonjour,

    Peut-être cette ligne, essayez de changer dans la *class timerTime* cette déclaration

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    private static Context mCtx = null;
    par

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    private static Context mCtx ;

Discussions similaires

  1. Problème avec .configure dans une classe
    Par Instanton dans le forum Tkinter
    Réponses: 2
    Dernier message: 29/12/2007, 10h37
  2. [POO] Probléme de syntaxe dans une classe
    Par jewelz dans le forum Langage
    Réponses: 3
    Dernier message: 03/11/2007, 04h57
  3. Problème de setInterval dans une Classe
    Par jeremie74 dans le forum ActionScript 1 & ActionScript 2
    Réponses: 1
    Dernier message: 21/08/2007, 20h45
  4. Problème Access Violation dans une classe
    Par randriano dans le forum C++Builder
    Réponses: 1
    Dernier message: 11/04/2007, 19h49
  5. problème d'accès dans une classe dérivée!
    Par chrono23 dans le forum C++
    Réponses: 47
    Dernier message: 10/10/2006, 12h22

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