やったことの記録
主にlinuxとかperlとか
プロフィール
HN:
隠居SE
性別:
非公開
最新記事
(12/12)
(09/28)
(09/26)
(09/25)
(09/21)
P R
ブログ内検索
忍者カウンター
2025/04/18 (Fri)
05:30:54
[PR]
×
[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。
いくつかのカスタムビューでParcelableを使ってデータを退避してる筈なのに、
何故か一部のカスタムビューだけデータが復元できませんでした。
追いかけてみると、onSaveInstanceStateやonRestoreInstanceStateのイベント自体は発生しているのですが、writeToParcelが呼び出されず、データが保存されていない様子。
リソースIDが割り当てられていなかったり重複していると正しく保存されないことは知っていたので、
真っ先に確認するも、他では使っていない判りやすい名前を使っているので、重複は考えにくい。
でも、よくよく探してみると、重複してました( ̄∇ ̄*)ゞテヘッ
元々Activityに直接書いていた複雑な構造のビューを切り出してカスタムビューにしたので、
カスタムビュー自体にIDがセットされていて、
そのカスタムビューをActivityに載せた時に、そちらにも同じIDをセットしてしまっていました。
その結果、ひとつのビューに2つのIDが振られてしまい、
正しく保存できなくなっていたようです。
activity.xml
custumview.xml
半日無駄にした(^^;
#AndroidStudio #Parcelable
何故か一部のカスタムビューだけデータが復元できませんでした。
追いかけてみると、onSaveInstanceStateやonRestoreInstanceStateのイベント自体は発生しているのですが、writeToParcelが呼び出されず、データが保存されていない様子。
リソースIDが割り当てられていなかったり重複していると正しく保存されないことは知っていたので、
真っ先に確認するも、他では使っていない判りやすい名前を使っているので、重複は考えにくい。
でも、よくよく探してみると、重複してました( ̄∇ ̄*)ゞテヘッ
元々Activityに直接書いていた複雑な構造のビューを切り出してカスタムビューにしたので、
カスタムビュー自体にIDがセットされていて、
そのカスタムビューをActivityに載せた時に、そちらにも同じIDをセットしてしまっていました。
その結果、ひとつのビューに2つのIDが振られてしまい、
正しく保存できなくなっていたようです。
activity.xml
<jp.foo.bar.mycustomview android:layout_width="wrap_content" android:layout_height="match_parent" android:id="@+id/myCustomView" />
custumview.xml
<!--?xml version="1.0" encoding="utf-8"?-->
<relativelayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:id="@+id/myCustomView"> ←これが余計
</relativelayout>
半日無駄にした(^^;
#AndroidStudio #Parcelable
PR
この記事にコメントする