Question

Y at-il un moyen de définir le contenu d'un NativeActivity à un composant créé en Java (comme un FrameLayout, ImageView, etc.)? J'ai besoin d'utiliser un NativeActivity (pour obtenir l'entrée du pavé tactile sur Xperia Play), mais je dois aussi être en mesure d'afficher les composants créés dans le code Java.

J'ai essayé redéfinissant la commande onCreate et appelant setContentView là, mais bien que cela ne jette pas d'erreurs, il ne fait rien non plus (apparemment parce que l'affichage du contenu est déjà défini par le code natif). Y at-il une sorte d'identité de fenêtre ou quelque chose que je pouvais passer au code natif pour lui dire ce que le point de vue du contenu devrait être, ou peut cela en quelque sorte mis en place dans le fichier XML pour définir l'affichage du contenu du NativeActivity à un composant que je peux modifier de Java?

Laissez-moi savoir si vous avez besoin de plus d'informations.

Était-ce utile?

La solution

Je posterai la réponse ici pour d'autres avec le même problème, puisque j'ai fini par trouver une méthode qui fonctionne.

Dans la méthode onCreate (), si vous mettez des drapeaux de fenêtre particulier (FEATURE_NO_TITLE, FLAG_FULLSCREEN, FLAG_KEEP_SCREEN_ON, etc) font ceux que vous appelez avant super.onCreate () (ou ils seront ignorés). Ensuite, chaque fois que vous mettriez normalement ceci:

setContentView( whatever );

Faites ceci:

getWindow().takeSurface( null );
getWindow().setContentView( whatever );

C'est la méthode de base pour obtenir le contenu à contrôler du côté Java. Tout lieu dans votre code où vous traitez avec le contenu, l'utilisation « getWindow () » au lieu de « ce ».

D'autres choses à garder à l'esprit, sont que la OnKey normale et les méthodes OnTouch ne seront pas appelés (leurs équivalents indigènes seront à la place), donc si vous devez être en mesure d'entrée de processus sur le côté Java, vous aurez doivent mettre en place une liaison JNI pour envoyer les informations de natif Java. Je crois que tout le reste est inclus dans l'exemple de code officiel du pavé tactile Play XPERIA (les ajouts à la AndroidManifest.xml et ce-pas).

Si vous voulez regarder mon projet de référence, il est open source et peut être trouvé à l'adresse:

http://www.paulscode.com/forum/ index.php? topic = # 75.msg1540 msg1540

Il suffit de cliquer sur le lien "code source" à côté de "XPERIA PLAY-Pad tactile Exemple". Il peut ne pas être d'une grande utilité pour vous cependant, car il est un assez grand projet et peut être difficile de trouver ce que vous recherchez. Si vous avez des problèmes, poser une question sur mon forum il ou écrivez-moi, et je serai heureux de vous aider.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top