SupportLibrary 23.2+ で Fragment で受けれる startActivityForResult()

android_support_library_-_Google_Search_🔊

Android Support Library 23.2 | Android Developers Blog

「これは大きい機能の更新」ということですが.

// SecondFragment.java
 
// Calling to SecondActivity
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
                         Bundle savedInstanceState) {
  ...
  btnGo = (Button) rootView.findViewById(R.id.btnGo);
  btnGo.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
      Intent intent = new Intent(getContext(), SecondActivity.class);
      startActivityForResult(intent, 12345);
    }
  });
}
 
// Get Result Back
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
  super.onActivityResult(requestCode, resultCode, data);
  Log.d("onActivityResult", "requestCode = " + requestCode);
}

onActivityResult() inside Nested Fragment is now called on Support Library rev 23.2 and above :: The Cheese Factory

23.2 よりも前の場合は EventBus を使って, 元の Activity で受ける方法しかなかったが, 置き換えした Fragment で受けれるということなのだろうが.

dependencies {
  compile 'com.squareup:otto:1.3.6'
}

How to make onActivityResult get called on Nested Fragment :: The Cheese Factory

でも, 逆にもう

「EventBus で戻す」だけ

でもいいように思えてきましたが, 手抜きすぎるか.

Otto自体はメンテ終了しているので, Rx方面に進むのがよいのだろうか.

OttoからRxJavaへの移行ガイド - Qiita

元記事「nest」という言葉が気にはなるが.

サポートライブラリ群のバージョン表記もなんとなく紛らわしくなってきたな, と.

032: Making sense of Android Support Library version numbers – Fragmented


Android N のバージョン記述はどう書くのか?

SDKやPlatform-tools などすべて更新して, Java8 に設定.

SDKバージョン周りがなんだか謎.

今日公開された公式ドキュメントでは以下.

Set_Up_the_Preview___Android_Developers 2

Set Up the Preview | Android Developers

このとおりにエディタで編集する.

android-n

だめじゃん!

赤波下線じゃん!!

Android Studio から GUI上から書き換える.

Project_Structure_and_app

android-n-1

Project_Structure

「OK」を押すと, build.gradle に反映される.

なんすか

画面上部の「Try Again」をクリックして Sync しようとすると エラーとなります.

n

あかんやんけ, ワレ.

公式のサンプルを見てみる.

android-ScopedDirectoryAccess_build_gradle_at_master_·_googlesamples_android-ScopedDirectoryAccess

android-MultiWindowPlayground/build.gradle at master · googlesamples/android-MultiWindowPlayground

これでいけた.

公式ドキュメントが更新に追いついてないのか (buildToolsVersion).

いや, GUIからの設定もおかしい (compileSdkVersion).

ややこいなあ.


Android N Developer Preview が遂に登場!!

リソースなど公開されています.

Android_N_Developer_Preview___Android_Developers

専用のサイトもこれまでと違い充実しています.

Program_Overview___Android_Developers

最終版リリースは,「2016 Q3」の予定.

Program_Overview___Android_Developers

SDKをダウンロードすれば, Android Studio + Java8 で開発ができるようになります.

Set_Up_the_Preview___Android_Developers

Set_Up_the_Preview___Android_Developers

ダウンロードできるシステムイメージは Nexus6以降のNexusシリーズ.

Test_on_an_Android_N_Device___Android_Developers

Beta Program に登録すると最新のPreview版がOTAで更新することもできます.

Test_on_an_Android_N_Device___Android_Developers

その他, 新機能の一覧やサンプルコード類も充実しています.

Android N Developer Preview | Android Developers