PreferenceScreenのIntentでExtraを渡す方法
PreferenceScreenでIntentを発行することができます。
<PreferenceScreen android:title="Intentを" android:summary="飛ばすよ"> <intent android:action="android.intent.action.MAIN" android:targetPackage="jp.tomorrowkey.android.sendwithextra" android:targetClass="jp.tomorrowkey.android.sendwithextra.SecondActivity"> </intent> </PreferenceScreen>
これでIntentを発行してSecondActivityが起動されます。
今回はSecondActivityにデータを渡したかったので、IntentのExtraに仕込むことできないかな。と思って調べました。
具体的なソースはこちら
<PreferenceScreen android:title="Intentを" android:summary="飛ばすよ"> <intent android:action="android.intent.action.MAIN" android:targetPackage="jp.tomorrowkey.android.sendwithextra" android:targetClass="jp.tomorrowkey.android.sendwithextra.SecondActivity"> <extra android:name="s" android:value="a" /> <extra android:name="i" android:value="1" /> </intent> </PreferenceScreen>
2つのデータをExtraに仕込んでいます。
sという名前のextraはBundle#getString(:String)でしか取得できません
iという名前のextraはBundle#getInt(:String)でしか取得できません
iはBundle#getString(:String)でも取得できんじゃないかと思ったのですが、ClassCastExceptionがでちゃいます。
じゃぁ、1.1って入れればBundle#getDouble(:String)を使わないといけないのかなと思って書いてみたんですが
1.1というデータを入れたらnullになっちゃいました。
今回はフラグ目的でデータを仕込みたかっただけなんで文字列で十分なので、調査はここまで