0


所以我有一段代码适用于 android 4.2,但不适用于较旧的 android 版本。

public void onAnimationEnd(Animation animation) {
            try {
                ImageView ivCloudView = lCloudArray.get(iCloudCounter); // get View from ArrayList
                ((ViewGroup) ivCloudView.getParent()).removeView(ivCloudView); //remove View
                iCloudCounter++;
            } catch (Exception e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }

        }

我不知道为什么它不适用于较旧的 android 版本。如果我更改删除代码,并将其替换为以下内容:

ivCloudView.setImageResource(R.drawable.button);

它会起作用的。我不知道有什么问题。。

图像视图(云)是动态创建的,并放在 lCloudArray 中。但奇怪的是,当字段中只有 1 个云时,它会被删除而没有任何问题。
当有多个云时,错误开始发生。

xml

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/mainlayout"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingTop="@dimen/activity_vertical_margin"
android:orientation="vertical"
android:background="@drawable/goededoelenquiz"
tools:context=".MainActivity" >
<TextView
    android:id="@+id/tvgametitle"
    android:gravity="center"
    android:layout_height="200sp"
    android:layout_width="fill_parent"
    android:layout_above="@+id/bStartbutton"
    android:textColor="@color/white"
    android:textSize="75sp"
    android:text="@string/gametitle" />
<Button
    android:id="@+id/bStartbutton"
    android:layout_width="fill_parent"
    android:layout_height="100sp"
    android:layout_alignParentBottom="true"
    android:layout_marginBottom="75sp"
    android:background="@drawable/button"
    android:text="@string/startbutton" />
<Button
    android:id="@+id/bHighscore"
    android:layout_width="fill_parent"
    android:layout_height="100sp"
    android:layout_alignParentBottom="true"
    android:layout_marginBottom="0sp"
    android:background="@drawable/button"
    android:text="@string/highscorebutton" />

4

1 回答 1

0

我对当前信息的猜测是 ImageView (ivCloudView) 没有父级。在删除视图之前检查 ivCloudView.getParent() 是否不为空。

如果这不起作用,请发布您的布局 XML!

于 2013-05-26T15:36:06.047 回答