
Android-. - (Activity), - (Fragment) / (Custom View).
┬л тАФ ┬╗. , . , .
Android, , . , ,
GitHub.
Activity
Android-, , (, ), , , ┬л┬╗. (back stack). :

A1 ( - ), A2 A3.
startActivityForResult()
, , -.
, :
- .
- AndroidManifest.xml.
- startActivity().
, . ,
. : , , .
, ,
. API level 11 тАж
Google, ┬л Android 3.0 (API level 11) , , , . , , . . , , ┬╗.
, , . - ,
- . , , , , , , , .
, , , . , , . . , , . :

1 F1? , 1 F1, . , 1 F1 - (bundle), .
F1 1? , callback/observer, 1 F1, .
, 1 2? , ,
startActivityForResult()
.
: F1 F2? , -, . . , F2 F1 - . callback- F2 2, - , 1 F1.
, , . , , ?
, , (
1,
2). .

, . , .
FragmentManager
, . ,
startActivityForResult()
, callback/observer. .
:
1. AndroidManifest.xml
, . , . , , , .
-, . :
<?xml version="1.0" encoding="utf-8"?>
package="com.exarlabs.android.fragmentnavigationdemo.ui" >
<application android:name= ".FragmentNavigationDemoApplication"
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:supportsRtl="true"
android:theme="@style/AppTheme">
<activity
android:name="com.exarlabs.android.fragmentnavigationdemo.ui.MainActivity"
android:label="@string/app_name"
android:screenOrientation="portrait"
android:theme="@style/AppTheme.NoActionBar" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>
2.
, ,
NavigationManager
. . , .. - .
, , . , , .
:
Intent intent = new Intent();
intent.putExtra("age", 40);
intent.putExtra("occupation", "developer");
intent.putExtra("gender", "female");
startActivityForResult(intent, 100);
onActivityResult
:
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
}
, тАФ ┬л┬╗ . , , . , - , , , , .
, , ( ) _List_, , .
, .
NavigationManager
startPersonSelectorFragment()
callback'.
mNavigationManager.startPersonSelectorFragment(40, "developer", "female",
new PersonSelectorFragment.OnPersonSelectedListener() {
@Override
public boolean onPersonsSelected(List<Person> selection) {
[do something]
return false;
}
});
RetroLambda:
mNavigationManager.startPersonSelectorFragment(40, "developer", "female", selection -> [do something]);
3.
, . callback-, F1, , F2 . callback', _List_.
4.
(drawer), , .
, ┬л┬╗ (inflate) , .
(FR*), . , , . тАФ .

, . ,
┬л┬╗ . , ? -, .
, - , , , . , ?
, ,
, , ,
ShinobiControls,
ViewPagers FragmentStatePagerAdapters.
, , . , , . , .
, , , , .
Android-. , , ┬л┬╗.
, -,
GitHub. .