Implement Android activities in GMA

Androidâ„¢ activities can be bundled with your GMA app and called from the Genero code.

A Java-based extension that interacts with the end user must be implemented as an Android Activity, by using the android.app.Android class.

In order to use your Android Activity from the program, it must be integrated in the mobile app Android package (.apk), which is created in the Genero Studio deployment procedure.

This code example implements a simple Android Activity:
package com.myextension;

import android.app.Activity;
import android.os.Bundle;
import android.widget.TextView;

public class MyActivity extends Activity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        Button button = new Button(this);
        button.setText("Quit");
        setContentView(button);
        button.setOnClickListener(
             new View.OnClickListener() {
             public void onClick(View v) {
                 int resultCode = RESULT_OK;
                 Intent resultData = new Intent();
                 resultData.putExtra("MyKey", "MyValue");
                 setResult(resultCode, resultData);
                 finish();
             }
        });
    }
}
In order to execute this activity from a Genero app, use the startActivity front call:
MAIN
    DEFINE data, extras STRING
    MENU
        ON ACTION activity ATTRIBUTES(TEXT="Call bundled activity")
            CALL ui.Interface.frontCall("android", "startActivityForResult",
                 ["android.intent.action.VIEW", NULL, NULL, NULL,
                  "com.myextension.MyActivity"],
                 [ data, extras ])
                 MESSAGE "data=",data," / extras=",extras
        ON ACTION quit
            EXIT MENU
    END MENU
END MAIN

The component name (fifth parameter) of the startActivity front call does normally take the APK package name followed by the Java Activity class name (apk-package-name/java-class-name). The APK Android package name can be defined for the application project in Genero Studio. When using an user-defined activity that is part of the GMA binary archive, do not specify the APK package in the component parameter, because the Java Activity class will be included in the current APK package. This is true when using the customized GMA front-end in development mode, and in the final application that is deployed on the device. For more details about the component parameter, see android.startActivity.