l'intention.getAction() retourne NULL
Dans mon application, j'ai ajouté un écran de démarrage et j'ai créé le démarrage de l'activité et fait les modifications appropriées dans le fichier de manifeste. Cependant, quand j'ai mon application, l'écran de démarrage s'affiche pendant son temps de parole, puis renvoie une exception NullPointerException. Le problème est causé par
intent.getAction()
Sur la ligne 241 de la classe de mon splash redirige vers, l'intention.getAction() retourne la valeur null. C'est ma compréhension que l'action est saisie du fichier de manifeste pour les activités spécifiées. C'est correct, n'est-il pas? Si oui, quelqu'un peut regarder ça et voir si je l'ai enculée quelque chose? Je ne vois rien de mal.
<activity android:name=".Main"
android:label="@string/app_name">
</activity>
<activity android:name=".SplashActivity" android:theme="@android:style/Theme.Black.NoTitleBar.Fullscreen">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
<intent-filter>
<action android:name="android.intent.action.GET_CONTENT" />
<data android:mimeType="*/*" />
<category android:name="android.intent.category.OPENABLE" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
_________Si l'instruction qui est de la récupération de l'action______________
Intent intent = getIntent();
System.out.println("Intent action is " + intent.getAction());
if(intent.getAction().equals(Intent.ACTION_GET_CONTENT)) {
bimg[5].setVisibility(View.GONE);
mReturnIntent = true;
} else if (intent.getAction().equals(ACTION_WIDGET)) {
Log.e("MAIN", "Widget action, string = " + intent.getExtras().getString("folder"));
mHandler.updateDirectory(mFileMag.getNextDir(intent.getExtras().getString("folder"), true));
}
}
Im de la récupération de l'action de l'intention pour une instruction if. Voir abpve. Ive a ajouté l'instruction if Im en utilisant.
Ce n'est pas de suffisamment d'informations pour expliquer ce que vous'retrying à faire.. que vos actions ne sont pas claires. Nous avons également besoin de savoir ce flux d'actions/de la configuration, vous devez saisir ce que vous voulez.
OriginalL'auteur Steve Weaver | 2013-02-24
Vous devez vous connecter pour publier un commentaire.
L'action est saisie de l'Intention qu'a commencé l'activité. L'intention manifeste de filtres à définir quels types d'intentions seront appariés en plus de celles de spécifier directement cette activité comme une cible.
Il est tout à fait normal pour l'action à null si vous avez démarré l'activité avec quelque chose comme ceci:
Vous n'avez pas indiquer une action pour l'Intention, donc il n'y a pas un seul. Lors de l'essai de la réception de l'intention de l'action, il est souvent utile d'inverser la case comme ceci:
pour éviter la nécessité d'une valeur null explicite vérifier, depuis la constante de
Intent.ACTION_GET_CONTENT
ne va pas être null.(À noter que votre code devra encore faire quelque chose de raisonnable, même si aucun de vos action vérifie match dans un cas comme celui-ci.)
Non, voir la modifier en haut de la réponse. L'intention-les filtres ne sont que des filtres de définir quel genre de plus général, les intentions peuvent être appariés. Si vous startActivity d'une intention qui vise directement que celui de l'activité par son nom, il n'a pas une action, sauf si vous lui en donner une. intent-filter ne sont jamais utilisés pour "remplir" des informations supplémentaires dans l'intention, l'intention doit toujours contenir que ce que l'intention du créateur ajouté.
L'homme...j'étais donc loin de la réalité! Merci pour votre aide! Par chance vous avez un exemple pratique de la définition d'une intention d'action?
new Intent(Intent.ACTION_GET_CONTENT)
,myIntent.setAction(Intent.ACTION_GET_CONTENT)
, etc. 🙂 developer.android.com/reference/android/content/Intent.htmlVous êtes les bienvenus! Maintenant déposer l'écran de démarrage, il suffit de lancer votre application. C'est plus propre. 😉
OriginalL'auteur adamp