アプリの起動時にアセットから画像をロードするローダー クラスがあります。
次に、いくつかのボタンを備えたメインメニューがあります。1 つのボタンをクリックすると、ローダー クラスから画像をロードする ViewFlipper を備えた新しいレイアウトが表示されます。ViewFlipper アクティビティを終了してメイン メニューに戻り、ViewFlipper を再度開始すると、Illegalstateexception が発生します。
ここに私のローダークラスがあります:
public void inflate(){
for(int i =0;i< createArray();i++){
view = LayoutInflater.from(getApplicationContext()).inflate(R.layout.bilder, null);
viewInflate.add(view);
}
Toast.makeText(getApplicationContext(), "" +viewInflate.size(), Toast.LENGTH_LONG).show();
addPics();
}
public void addPics(){
for(int i =0;i< createArray();i++){
View pic = viewInflate.get(i).findViewById(R.id.ImageView01);
View pic2 = viewInflate.get(i).findViewById(R.id.ImageView02);
((ImageView) pic).setImageBitmap((Bitmap)frontPic.get(i));
((ImageView) pic2).setImageBitmap((Bitmap)backPic.get(i));
}
}
そして、ここで私の ViewFlipper 画像インポート方法:
public void loadInto(int i) {
flipper.addView((View) LoadingScreen.viewInflate.get(i));
}
frontPic、backPic、viewInflate は ArrayList です。
新しいものを追加する前に、ViewFlipper のすべての子を削除する必要があることはわかっていますが、どこでしょうか?
07-16 16:41:46.468: E/AndroidRuntime(26720): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.myapp/com.example.myapp.psuflip}: java.lang.IllegalStateException: The specified child already has a parent. You must call removeView() on the child's parent first.
07-16 16:41:46.468: E/AndroidRuntime(26720): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2180)
07-16 16:41:46.468: E/AndroidRuntime(26720): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2230)
07-16 16:41:46.468: E/AndroidRuntime(26720): at android.app.ActivityThread.access$600(ActivityThread.java:141)
07-16 16:41:46.468: E/AndroidRuntime(26720): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1234)
07-16 16:41:46.468: E/AndroidRuntime(26720): at android.os.Handler.dispatchMessage(Handler.java:99)
07-16 16:41:46.468: E/AndroidRuntime(26720): at android.os.Looper.loop(Looper.java:137)
07-16 16:41:46.468: E/AndroidRuntime(26720): at android.app.ActivityThread.main(ActivityThread.java:5041)
07-16 16:41:46.468: E/AndroidRuntime(26720): at java.lang.reflect.Method.invokeNative(Native Method)
07-16 16:41:46.468: E/AndroidRuntime(26720): at java.lang.reflect.Method.invoke(Method.java:511)
07-16 16:41:46.468: E/AndroidRuntime(26720): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793)
07-16 16:41:46.468: E/AndroidRuntime(26720): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:560)
07-16 16:41:46.468: E/AndroidRuntime(26720): at dalvik.system.NativeStart.main(Native Method)
07-16 16:41:46.468: E/AndroidRuntime(26720): Caused by: java.lang.IllegalStateException: The specified child already has a parent. You must call removeView() on the child's parent first.
07-16 16:41:46.468: E/AndroidRuntime(26720): at android.view.ViewGroup.addViewInner(ViewGroup.java:3339)
07-16 16:41:46.468: E/AndroidRuntime(26720): at android.view.ViewGroup.addView(ViewGroup.java:3210)
07-16 16:41:46.468: E/AndroidRuntime(26720): at android.widget.ViewAnimator.addView(ViewAnimator.java:184)
07-16 16:41:46.468: E/AndroidRuntime(26720): at android.view.ViewGroup.addView(ViewGroup.java:3155)
07-16 16:41:46.468: E/AndroidRuntime(26720): at android.view.ViewGroup.addView(ViewGroup.java:3131)
07-16 16:41:46.468: E/AndroidRuntime(26720): at com.example.myapp.psuflip.inflate(psuflip.java:392)
07-16 16:41:46.468: E/AndroidRuntime(26720): at com.example.myapp.psuflip.createFlipper(psuflip.java:374)
07-16 16:41:46.468: E/AndroidRuntime(26720): at com.example.myapp.psuflip.onCreate(psuflip.java:105)
07-16 16:41:46.468: E/AndroidRuntime(26720): at android.app.Activity.performCreate(Activity.java:5104)
07-16 16:41:46.468: E/AndroidRuntime(26720): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1080)
07-16 16:41:46.468: E/AndroidRuntime(26720): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2144)