StartActivityForResult

Typehandler
Dictionarylibrary.androidutils
LibraryAndroid Utilities
Syntax
StartActivityForResult(<pIntent>,<pRequestCode>,<pHandler>)
Associationscom.livecode.library.androidutils
Summary

Start an activity by Intent

OSandroid
Parameters
NameTypeDescription
pIntent

An Intent JObject to use to start an activity

pRequestCode

A positive integer used to identify the request when handling onActivityResult.

pHandler

A handler that conforms to the OnActivityResultHandler type

Example
constant kIntentACTION_SEND is "android.intent.action.SEND"
constant kIntentEXTRA_TEXT is "android.intent.extra.TEXT"
constant kActivityRESULT_CANCELED is 0
constant kShareStringRequestCode is 123

__safe foreign handler _JNI_IntentNew(in pAction as JString) \
	returns JObject \
	binds to "java:android.content.Intent>new(Ljava/lang/String;)"

__safe foreign handler _JNI_IntentSetType(in pIntent as JObject, \
	in pType as JString) \
	returns JObject \
	binds to "java:android.content.Intent>setType(Ljava/lang/String;)Landroid/content/Intent;"

__safe foreign handler _JNI_IntentPutExtraString(in pIntent as JObject, \
	in pType as JString, \
	in pValue as JString) \
	returns JObject \
	binds to "java:android.content.Intent>putExtra(Ljava/lang/String;Ljava/lang/String;)Landroid/content/Intent;"

handler _ShareStringResultListener( \
		in pRequestCode as JInt, \
		in pResultCode as JInt, \
		in pIntent as optional JObject) returns nothing

	if pResultCode is kActivityRESULT_CANCELED then
		post "shareStringCancelled"
	else
		post "shareStringComplete"
	end if
end handler

public handler ShareString(in pString as String) returns nothing
	variable tIntent as JObject
	put _JNI_IntentNew(StringToJString(kIntentACTION_SEND)) into tIntent

	_JNI_IntentSetType(tIntent, StringToJString("text/plain"))

	_JNI_IntentPutExtraString( \
		tIntent, \
		StringToJString(kIntentEXTRA_TEXT), \
		StringToJString(pString))

	StartActivityForResult( \
		tIntent, \
		kShareStringRequestCode, \
		_ShareStringResultListener)
end handler
Description

Start an activity by Intent and receive a callback to the specified handler when the LiveCode activity receives the result via the onActivityResult method.

The callback must conform to the OnActivityResultHandler type which returns nothing and has parameters:

  • in pRequestCode as JInt
  • in pResultCode as JInt
  • in pIntent as optional JObject