aboutsummaryrefslogtreecommitdiffstats
path: root/examples/androidextras/customactivity/doc/src/qtandroidextras-example-customactivity.qdoc
diff options
context:
space:
mode:
Diffstat (limited to 'examples/androidextras/customactivity/doc/src/qtandroidextras-example-customactivity.qdoc')
-rw-r--r--examples/androidextras/customactivity/doc/src/qtandroidextras-example-customactivity.qdoc134
1 files changed, 134 insertions, 0 deletions
diff --git a/examples/androidextras/customactivity/doc/src/qtandroidextras-example-customactivity.qdoc b/examples/androidextras/customactivity/doc/src/qtandroidextras-example-customactivity.qdoc
new file mode 100644
index 0000000..ad075e6
--- /dev/null
+++ b/examples/androidextras/customactivity/doc/src/qtandroidextras-example-customactivity.qdoc
@@ -0,0 +1,134 @@
+/****************************************************************************
+**
+** Copyright (C) 2020 The Qt Company Ltd.
+** Contact: https://www.qt.io/licensing/
+**
+** This file is part of the QtAndroidExtras module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:BSD$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see https://www.qt.io/terms-conditions. For further
+** information use the contact form at https://www.qt.io/contact-us.
+**
+** BSD License Usage
+** Alternatively, you may use this file under the terms of the BSD license
+** as follows:
+**
+** "Redistribution and use in source and binary forms, with or without
+** modification, are permitted provided that the following conditions are
+** met:
+** * Redistributions of source code must retain the above copyright
+** notice, this list of conditions and the following disclaimer.
+** * Redistributions in binary form must reproduce the above copyright
+** notice, this list of conditions and the following disclaimer in
+** the documentation and/or other materials provided with the
+** distribution.
+** * Neither the name of The Qt Company Ltd nor the names of its
+** contributors may be used to endorse or promote products derived
+** from this software without specific prior written permission.
+**
+**
+** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+/*!
+ \title Android Custom Activity
+ \ingroup examples-qtandroidextras
+ \example customactivity
+ \brief Demonstrates working with custom Android activities.
+
+ \image customactivity.png
+
+ This example demonstrates how to create an Android Activity and run it from
+ your Qt application. The activity is composed of a Java class and an Android
+ XML layout which is started from the main app. The activity can send back data
+ after finishing which can be used in QML.
+
+ When you click the \uicontrol{"Start custom Android activity"} button, the
+ activity is started, and the activity has a text view and a button to exit.
+ The activity can either use the button or the back gesture to go back.
+
+ \include examples-run.qdocinc
+
+ \section1 Create Activity Class
+
+ Define an Android class called \c CustomActivity in the CustomActivity.java
+ file as follows:
+
+ \quotefromfile customactivity/android/src/org/qtproject/example/activityhandler/CustomActivity.java
+ \skipto package
+ \printuntil /^\}/
+
+ The Activity's layout is defined at \e {customactivity/android/res/layout/second_activity.xml}.
+
+ To use this Activity, it must be defined in the \e AndroidManifest.xml file
+ as follows:
+
+ \quotefromfile customactivity/android/AndroidManifest.xml
+ \skipto :custom_activity
+ \printuntil </activity>
+
+ \note To use any native JNI calls, you must extend \c QtActivity instead of
+ \c Activity.
+
+ \section1 Start the Activity
+
+ To start an Activity from Qt, you need to create an intent using \l{QAndroidIntent},
+ then call \l{QtAndroid::startActivity} providing the intent, a custom request
+ code, and a callback function. The latter is called after the activity has
+ finished. You can start the activity as follows:
+
+ \quotefromfile customactivity/activityhandler.cpp
+ \skipto showSecondActivity
+ \printuntil });
+ \printline }
+
+ Then, define the callback function that is called directly after the activity
+ is done:
+
+ \quotefromfile customactivity/activityhandler.cpp
+ \skipto ActivityHandler::activityReceiver
+ \printuntil }
+
+ \note You can first check that the \c requestCode and \c resultCode are correct.
+
+ To connect C++ with QML, add an instance of the C++ class that is handling
+ the JNI logic as a QML property in the \e main.cpp file:
+
+ \quotefromfile customactivity/main.cpp
+ \skipto ActivityHandler
+ \printuntil setContextProperty
+
+ Then, add a \l Connections element to watch for messages from C++ in the
+ \e main.qml file:
+
+ \quotefromfile customactivity/main.qml
+ \skipto Connections
+ \printuntil /^\ {4}\}/
+
+ And set the \c onClicked for the \uicontrol{"Start custom Android activity"}
+ button to:
+
+ \quotefromfile services/common/main.qml
+ \skipto onClicked
+ \printline onClicked
+
+ \sa {Qt for Android}, {Qt Android Extras}
+*/