2017-11-05 5 views
-1

私はアンドロイド開発には新しく、ViewPagerとPagerAdapterを使用して動的ビューを作成しました。 ViewPagerHandlerクラスでこのロジックを処理しています。これはアクティビティAから始まります。ViewPagerオブジェクトを別のアクティビティに渡す

アクティビティAに表示された新しいビューを別のアクティビティBから追加します。私のarraylistにビューを追加し、そのビューをcurrentviewとして設定するにはPagerAdapterオブジェクトにアクセスする必要があります。

アクティビティBのインテントにViewPagerHandlerオブジェクトを渡そうとしましたが、以下のスタックトレースで失敗しました。

java.lang.RuntimeException: Parcelable encountered IOException writing serializable object (name = com.mak.test.weatherapp.ViewPagerHandler) 
                      at android.os.Parcel.writeSerializable(Parcel.java:1761) 
                      at android.os.Parcel.writeValue(Parcel.java:1709) 
                      at android.os.Parcel.writeArrayMapInternal(Parcel.java:777) 
                      at android.os.BaseBundle.writeToParcelInner(BaseBundle.java:1506) 
                      at android.os.Bundle.writeToParcel(Bundle.java:1181) 
                      at android.os.Parcel.writeBundle(Parcel.java:817) 
                      at android.content.Intent.writeToParcel(Intent.java:9480) 
                      at android.app.IActivityManager$Stub$Proxy.startActivity(IActivityManager.java:4340) 
                      at android.app.Instrumentation.execStartActivity(Instrumentation.java:1610) 
                      at android.app.Activity.startActivityForResult(Activity.java:4472) 
                      at android.support.v4.app.BaseFragmentActivityApi16.startActivityForResult(BaseFragmentActivityApi16.java:54) 
                      at android.support.v4.app.FragmentActivity.startActivityForResult(FragmentActivity.java:67) 
                      at android.app.Activity.startActivityForResult(Activity.java:4430) 
                      at android.support.v4.app.FragmentActivity.startActivityForResult(FragmentActivity.java:720) 
                      at android.app.Activity.startActivity(Activity.java:4791) 
                      at android.app.Activity.startActivity(Activity.java:4759) 
                      at com.sjsu.cmpe277.weatherapp.MainActivity.onOptionsItemSelected(MainActivity.java:179) 
                      at android.app.Activity.onMenuItemSelected(Activity.java:3435) 
                      at android.support.v4.app.FragmentActivity.onMenuItemSelected(FragmentActivity.java:368) 
                      at android.support.v7.app.AppCompatActivity.onMenuItemSelected(AppCompatActivity.java:195) 
                      at android.support.v7.view.WindowCallbackWrapper.onMenuItemSelected(WindowCallbackWrapper.java:108) 
                      at android.support.v7.app.AppCompatDelegateImplV9.onMenuItemSelected(AppCompatDelegateImplV9.java:674) 
                      at android.support.v7.view.menu.MenuBuilder.dispatchMenuItemSelected(MenuBuilder.java:822) 
                      at android.support.v7.view.menu.MenuItemImpl.invoke(MenuItemImpl.java:171) 
                      at android.support.v7.view.menu.MenuBuilder.performItemAction(MenuBuilder.java:973) 
                      at android.support.v7.view.menu.MenuBuilder.performItemAction(MenuBuilder.java:963) 
                      at android.support.v7.widget.ActionMenuView.invokeItem(ActionMenuView.java:624) 
                      at android.support.v7.view.menu.ActionMenuItemView.onClick(ActionMenuItemView.java:150) 
                      at android.view.View.performClick(View.java:6256) 
                      at android.view.View$PerformClick.run(View.java:24697) 
                      at android.os.Handler.handleCallback(Handler.java:789) 
                      at android.os.Handler.dispatchMessage(Handler.java:98) 
                      at android.os.Looper.loop(Looper.java:164) 
                      at android.app.ActivityThread.main(ActivityThread.java:6541) 
                      at java.lang.reflect.Method.invoke(Native Method) 
                      at com.android.internal.os.Zygote$MethodAndArgsCaller.run(Zygote.java:240) 
                      at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:767) 
                      Caused by: java.io.NotSerializableException: com.mak.test.weatherapp.MainActivity 
                      at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1233) 
                      at java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1597) 
                      at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1558) 
                      at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1481) 
                      at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1227) 
                      at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:347) 
                      at android.os.Parcel.writeSerializable(Parcel.java:1756) 

私は様々な記事をチェックして、自分のクラスのSerializableを実装することが示唆されてきた、私は私が使用しているすべてのクラスにSerializableを実装するが、それでもこのエラーを取得しています。

PagerAdapterオブジェクトにさまざまなアクティビティからアクセスして自分のビューを追加する方法はありますか。

+1

を通して送信税関オブジェクトのための小包を使用するための素晴らしいライブラリです

は「私は別の活動からそのPagerAdapterオブジェクトのアクセス権を渡し、そこに私の意見を追加することができますどのような方法があります」 - いいえ、申し訳ありません。 – CommonsWare

答えて

0

Parcelerを試しましたか?活動およびフラグメント

関連する問題