Domanda

C'è un modo per impostare il contenuto di un NativeActivity ad un componente realizzato in Java (come ad esempio un FrameLayout, ImageView, ecc)? Ho la necessità di utilizzare un NativeActivity (per avere un input touchpad su Xperia Play), ma ho anche bisogno di essere in grado di visualizzare i componenti creati nel codice Java.

Ho provato sovrascrivendo il comando onCreate e chiamando setContentView là, ma anche se ciò non gettare eventuali errori, ma non fa nulla o (apparentemente perché la vista dei contenuti è già impostato dal codice nativo). C'è una sorta di finestra id o qualcosa che avrei potuto passare al codice nativo indicare cosa alla vista del contenuto dovrebbe essere, o posso questo in qualche modo essere impostato in XML per impostare la visualizzazione dei contenuti del NativeActivity a un componente che posso modificare da Java?

Fammi sapere se avete bisogno di ulteriori informazioni.

È stato utile?

Soluzione

Vi posto qui la risposta per gli altri con lo stesso problema, da quando ho fatto finalmente capire un metodo che funziona.

Nel metodo onCreate (), se si sta impostando qualsiasi bandiere finestra particolari (FEATURE_NO_TITLE, FLAG_FULLSCREEN, FLAG_KEEP_SCREEN_ON, ecc) fanno quelli prima di chiamare super.onCreate () (o essi saranno ignorati). Quindi, ovunque si farebbe normalmente mettere questo:

setContentView( whatever );

fare questo, invece:

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

Questo è il modo di base per ottenere il contenuto di essere controllato dal lato Java. Qualsiasi luogo nel codice in cui avete a che fare con il contenuto, l'uso "getWindow ()" invece di "questo".

Alcune altre cose da tenere a mente, sono che l'OnKey normale e metodi onTouch non saranno chiamati (loro equivalenti nativi saranno invece), quindi se avete bisogno di essere in grado di ingresso di processo sul lato Java, ti necessario impostare qualche collegamento JNI per inviare le informazioni dal nativo di Java. Credo che tutto il resto è compreso nel Xperia codice ufficiale di esempio Giochi touchpad (le aggiunte alla AndroidManifest.xml e ciò che-non).

Se si vuole guardare il mio progetto di riferimento, è open-source e può essere trovato all'indirizzo:

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

Basta cliccare sul link "codice sorgente" accanto a "Xperia Play Touch-Pad Esempio". Esso non può essere tutto ciò che utile a voi, però, perché si tratta di una piuttosto grande progetto e può essere difficile da trovare quello che stai cercando. Se avete problemi, inviare una domanda sul mio forum lì o e-mail me, e sarò felice di aiuto.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top