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 :

Erreur lors du chargement d'une Activity


Sujet :

Android

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    168
    Détails du profil
    Informations personnelles :
    Localisation : Cameroun

    Informations forums :
    Inscription : Avril 2009
    Messages : 168
    Par défaut Erreur lors du chargement d'une Activity
    Bonjour,

    je travaille sur un projet android et je rencontre un curieux souci:

    lorsque je souhaite passer d'une page (ou bien "activity" ) à une autre j'utilise la méthode startActivity:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    startActivity(new Intent(this, SigninActivity.class));
    Au moment de l'appel de cette méthode, je constate que la page suivante n'est pas chargée mais c'est la page courante qui est rechargée et dans les logs, j'ai ceci:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    06-29 17:17:27.887 22615-22615/com.lekonquer.xxx.xxxxW/ActivityThread: handleWindowVisibility: no activity for token android.os.BinderProxy@84263c1
    06-29 17:17:27.918 22615-22615/com.lekonquer.xxx.xxxx I/DecorView: It non-support bigbang
    06-29 17:17:27.922 22615-22615/com.lekonquer.xxx.xxxxI/PhoneWindow: isNeedChangeNaviBarColor taskInfo: [android.app.ActivityManager$RunningTaskInfo@8eba3f2] size: 1
    06-29 17:17:27.922 22615-22615/com.lekonquer.xxx.xxxx I/PhoneWindow: isAPPNeedChange pkgName: com.lekonquer.xxx.xxxx needKeep: false
    06-29 17:17:27.922 22615-22615/com.lekonquer.xxx.xxxx I/PhoneWindow: isNeedChangeNaviBarColor false
    06-29 17:17:27.922 22615-22615/com.lekonquer.xxx.xxxx I/PhoneWindow: generateLayout mNavigationBarColor: ff000000
    06-29 17:17:27.922 22615-22615/com.lekonquer.xxx.xxxx I/PhoneWindow: generateLayout isLightNavi false, Visibility: 0
    06-29 17:17:28.139 22615-22615/com.lekonquer.xxx.xxxx I/AssistStructure: Flattened final assist data: 3072 bytes, containing 1 windows, 9 views
    J'avoue ne pas comprendre quel est le problème ?
    Pourrez vous m'aider svp?

  2. #2
    Membre chevronné
    Profil pro
    Inscrit en
    Juillet 2012
    Messages
    476
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2012
    Messages : 476
    Par défaut
    Tu sembles appeler ton Intent hors du Thread principal.

    Tu peux essayer proche de ca, dans ton callback de ta méthode asynchrone :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    runOnUiThread(new Runnable() {
       @Override
       public void run() {
    	if(!isFinishing()){
    		startActivity(new Intent(this, SigninActivity.class));
    	   }
       }
    });

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    168
    Détails du profil
    Informations personnelles :
    Localisation : Cameroun

    Informations forums :
    Inscription : Avril 2009
    Messages : 168
    Par défaut
    Bonjour,

    merci pour votre retour.
    Je ne fais pas d'appel asynchrone lors de l'appel de méthode startActivity.
    Comment pourrai je le faire avec le bout de code que vous proposez?
    j'avoue que je ne comprends pas bien le problème de l'appel d'intent dans le thread principal.
    Voici l'intégralité de mon code:
    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
     
    import android.content.Intent;
    import android.os.Bundle;
    import android.support.v7.app.AppCompatActivity;
    import android.util.Log;
    import android.view.View;
    import android.widget.EditText;
    import android.widget.Toast;
     
    import com.lekonquer.raoul.IMessage;
    import com.lekonquer.raoul.connectdb.SendSMS;
     
    import com.mobsandgeeks.saripaar.ValidationError;
    import com.mobsandgeeks.saripaar.Validator;
    import com.mobsandgeeks.saripaar.annotation.ConfirmPassword;
    import com.mobsandgeeks.saripaar.annotation.Email;
    import com.mobsandgeeks.saripaar.annotation.NotEmpty;
    import com.mobsandgeeks.saripaar.annotation.Password;
    import com.mobsandgeeks.saripaar.annotation.Pattern;
     
    import org.json.JSONArray;
     
    import java.util.List;
    import java.util.Random;
     
    /**
     * Created by user on .
     */
     
    public class SigninActivity extends AppCompatActivity implements Validator.ValidationListener, IMessage {
     
        @NotEmpty
        private EditText editTextName;
     
        private EditText editTextFirstName;
     
        @NotEmpty
        @Email
        private EditText editTextEmail;
     
        @NotEmpty
        @Pattern(regex = "^[2]\\d{4}\\d{4}$")
        private EditText editPhoneNumber;
     
        @NotEmpty
        @Password
        private EditText editTextPassword;
     
        @NotEmpty
        @ConfirmPassword
        private EditText editTextConfirmPass;
     
        private Validator validator;
     
        private static final String INSERT_NEW_CODE = "https://xxxxx/yyy.php";
     
        private JSONArray fOffersResult = null;
     
        private SendSM fSendSM = new SendSM();
     
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_signup);
            initViews();
            validator = new Validator(this);
            validator.setValidationListener(this);
        }
     
        private void initViews(){
            editTextName = (EditText) findViewById(R.id.textView);
            editTextFirstName = (EditText) findViewById(R.id.textView5);
            editTextEmail = (EditText) findViewById(R.id.textView7);
            editPhoneNumber = (EditText) findViewById(R.id.textView6);
            editTextPassword = (EditText) findViewById(R.id.textPassword);
            editTextConfirmPass = (EditText) findViewById(R.id.textConfPassword);
        }
     
        public void signIn(View view) {
            Log.i("test", "in button signin");
            //validator.validate();
            if(!SigninActivity.this.isFinishing()){
                startActivity(new Intent(SigninActivity.this, ConfirmPhoneNumber.class));
            }  
        }
        @Override
        public void onValidationSucceeded() {
            Toast.makeText(this, "We got it right!", Toast.LENGTH_SHORT).show();
            Log.w("validateSucceeded ", "before send sms");
     
            //Gets the code
            Random r = new Random();
            int codetouse = r.nextInt(100000);
            Log.w("code", ""+codetouse);
            Toast.makeText(this, "Code to use:"+codetouse, Toast.LENGTH_SHORT).show();  
        }
     
        @Override
        public void onValidationFailed(List<ValidationError> errors) {
            for (ValidationError error : errors) {
                View view = error.getView();
                String message = error.getCollatedErrorMessage(this);
                // Display error messages
                if (view instanceof EditText) {
                    ((EditText) view).setError(message);
                } else {
                    Toast.makeText(this, message, Toast.LENGTH_LONG).show();
                }
            }
        }
        @Override
        public void getOffersResultPostExecute(int pReturnStatus, String pCalledUrl, JSONArray pOffers) {  
        }
    }

  4. #4
    Membre chevronné
    Profil pro
    Inscrit en
    Juillet 2012
    Messages
    476
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2012
    Messages : 476
    Par défaut
    En effet, là comme ca, je ne vois pas où est le problème.
    Sur le net, j'ai pu voir que ca provenait parfois d'un problème d'import. Sinon, tu peux essayer de d'implémenter onClickListener pour ton activité, et enlever le onClick dans le layout de ton bouton, j'ai déjà eu 1 souci avec cette façon de faire.

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    168
    Détails du profil
    Informations personnelles :
    Localisation : Cameroun

    Informations forums :
    Inscription : Avril 2009
    Messages : 168
    Par défaut
    Bonjour,

    j'ai fait ce que vous m'avez proposé mais j'obtiens toujours le même 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
    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
     
     
    import android.content.Intent;
    import android.os.Bundle;
    import android.support.v4.view.GravityCompat;
    import android.support.v7.app.AppCompatActivity;
    import android.util.Log;
    import android.view.View;
    import android.widget.Button;
    import android.widget.EditText;
    import android.widget.ImageView;
    import android.widget.Toast;
     
    import com.lekonquer.raoul.IMessage;
    import com.lekonquer.raoul.connectdb.SendSMS;
     
    import com.mobsandgeeks.saripaar.ValidationError;
    import com.mobsandgeeks.saripaar.Validator;
    import com.mobsandgeeks.saripaar.annotation.ConfirmPassword;
    import com.mobsandgeeks.saripaar.annotation.Email;
    import com.mobsandgeeks.saripaar.annotation.NotEmpty;
    import com.mobsandgeeks.saripaar.annotation.Password;
    import com.mobsandgeeks.saripaar.annotation.Pattern;
     
    import org.json.JSONArray;
     
    import java.util.List;
    import java.util.Random;
     
    /**
     * Created by user on 07/02/2019.
     */
     
    public class SigninActivity extends AppCompatActivity implements Validator.ValidationListener, IMessage {
     
        @NotEmpty
        private EditText editTextName;
     
        private EditText editTextFirstName;
     
        @NotEmpty
        @Email
        private EditText editTextEmail;
     
        @NotEmpty
        @Pattern(regex = "^[5]\\d{4}\\d{4}$")
        private EditText editPhoneNumber;
     
        @NotEmpty
        @Password
        private EditText editTextPassword;
     
        @NotEmpty
        @ConfirmPassword
        private EditText editTextConfirmPass;
     
        private Button mOpenButton;
     
        private Validator validator;
     
        private static final String INSERT_NEW_CODE = "https://zzzz.org/xxxx.php";
     
        private JSONArray fOffersResult = null;
     
        private SendS fSendS = new SendS();
     
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_signup);
            initViews();
            validator = new Validator(this);
            validator.setValidationListener(this);
            configureViews();
        }
     
        private void initViews(){
            editTextName = (EditText) findViewById(R.id.textView);
            editTextFirstName = (EditText) findViewById(R.id.textView5);
            editTextEmail = (EditText) findViewById(R.id.textView7);
            editPhoneNumber = (EditText) findViewById(R.id.textView6);
            editTextPassword = (EditText) findViewById(R.id.textPassword);
            editTextConfirmPass = (EditText) findViewById(R.id.textConfPassword);
            mOpenButton = (Button)findViewById(R.id.buttonSignin);
        }
     
        private void configureViews(){
            mOpenButton.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View view) {
                    startActivity(new Intent(SigninActivity.this, ConfirmPhoneNumber.class));
                }
            });
        }
     
        @Override
        public void onValidationSucceeded() {
            Toast.makeText(this, "We got it right!", Toast.LENGTH_SHORT).show();
            Log.w("validateSucceeded ", "before send sms");
     
            //Gets the code
            Random r = new Random();
            int codetouse = r.nextInt(100000);
            Log.w("code", ""+codetouse);
            Toast.makeText(this, "Code to use:"+codetouse, Toast.LENGTH_SHORT).show();
     
        }
     
        @Override
        public void onValidationFailed(List<ValidationError> errors) {
            for (ValidationError error : errors) {
                View view = error.getView();
                String message = error.getCollatedErrorMessage(this);
                // Display error messages
                if (view instanceof EditText) {
                    ((EditText) view).setError(message);
                } else {
                    Toast.makeText(this, message, Toast.LENGTH_LONG).show();
                }
            }
        }
     
        @Override
        public void getOffersResultPostExecute(int pReturnStatus, String pCalledUrl, JSONArray pOffers) {
     
     
        }
    }

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    168
    Détails du profil
    Informations personnelles :
    Localisation : Cameroun

    Informations forums :
    Inscription : Avril 2009
    Messages : 168
    Par défaut
    Bonjour,

    après de multiples recherches, j'ai finalement trouvé la solution à ce problème.
    En fait lors de l'appel de la méthode
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    setContentView(R.layout.activity_xxxxxxx);
    , j'utilisais le même layout pour les 2 activity, d'où l'erreur!!!
    Après correction, tout a fonctionné correctement.

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

Discussions similaires

  1. Réponses: 0
    Dernier message: 16/08/2010, 12h24
  2. Réponses: 2
    Dernier message: 12/08/2010, 17h15
  3. Gestion d'erreur lors de chargement d'une image dans une useforme
    Par mentat dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 30/08/2009, 14h23
  4. Réponses: 7
    Dernier message: 23/12/2008, 18h30
  5. erreur lors du chargement d'une liste
    Par horkets dans le forum Ruby on Rails
    Réponses: 1
    Dernier message: 25/02/2008, 12h23

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