0

ビューを削除すると、エラーが発生しました。エラーの原因がわかりません:</p>

**java:**

  package com.test;
    import android.app.Activity;
    import android.os.Bundle;
    import android.util.Log;
    import android.view.View;
    import android.view.ViewGroup;
    import android.view.animation.AlphaAnimation;
    import android.view.animation.Animation;
    import android.view.animation.Animation.AnimationListener;
    import android.widget.ImageView;

    public class AnimationActivity extends Activity {
        ImageView imageView = null;
        ViewGroup viewGroup = null;
        /** Called when the activity is first created. */
        @Override
        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.main);
            imageView = (ImageView)findViewById(R.id.imageviewID);
            viewGroup = (ViewGroup)findViewById(R.id.layoutId); 
        }
        public void buttonOnclick(View e){
            int id = e.getId();
            if(id==R.id.alpha){
                AlphaAnimation alphaAnimation = new AlphaAnimation(1.0f, 0f);
                alphaAnimation.setDuration(5000);
                alphaAnimation.setStartOffset(500);
                alphaAnimation.setFillAfter(true);
                alphaAnimation.setFillBefore(false);
                alphaAnimation.setAnimationListener(new RemoveAnimationListener());
                imageView.startAnimation(alphaAnimation);
                Log.d("mydebug","imageView------------>"+imageView);
                Log.d("mydebug","viewGroup------------>"+viewGroup);
            }
        }
        private class RemoveAnimationListener implements AnimationListener{

            @Override
            public void onAnimationEnd(Animation animation) {
                // TODO Auto-generated method stub
                viewGroup.removeView(imageView);

            }
            @Override
            public void onAnimationRepeat(Animation animation) {
                // TODO Auto-generated method stub

            }

            @Override
            public void onAnimationStart(Animation animation) {
                // TODO Auto-generated method stub

            }
        }
    }

ここにエラーがあります:</p>

  05-22 10:01:16.367: W/dalvikvm(1839): threadid=1: thread exiting with uncaught exception (group=0x4001d7c8)ss
    05-22 10:01:16.397: E/AndroidRuntime(1839): FATAL EXCEPTION: main
    05-22 10:01:16.397: E/AndroidRuntime(1839): java.lang.NullPointerException
    05-22 10:01:16.397: E/AndroidRuntime(1839):     at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1366)
    05-22 10:01:16.397: E/AndroidRuntime(1839):     at android.view.ViewGroup.drawChild(ViewGroup.java:1638)
    05-22 10:01:16.397: E/AndroidRuntime(1839):     at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1367)
    05-22 10:01:16.397: E/AndroidRuntime(1839):     at android.view.View.draw(View.java:6743)
    05-22 10:01:16.397: E/AndroidRuntime(1839):     at android.widget.FrameLayout.draw(FrameLayout.java:352)
    05-22 10:01:16.397: E/AndroidRuntime(1839):     at android.view.ViewGroup.drawChild(ViewGroup.java:1640)
    05-22 10:01:16.397: E/AndroidRuntime(1839):     at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1367)
    05-22 10:01:16.397: E/AndroidRuntime(1839):     at android.view.ViewGroup.drawChild(ViewGroup.java:1638)
    05-22 10:01:16.397: E/AndroidRuntime(1839):     at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1367)
    05-22 10:01:16.397: E/AndroidRuntime(1839):     at android.view.View.draw(View.java:6743)
    05-22 10:01:16.397: E/AndroidRuntime(1839):     at android.widget.FrameLayout.draw(FrameLayout.java:352)
    05-22 10:01:16.397: E/AndroidRuntime(1839):     at com.android.internal.policy.impl.PhoneWindow$DecorView.draw(PhoneWindow.java:1857)
    05-22 10:01:16.397: E/AndroidRuntime(1839):     at android.view.ViewRoot.draw(ViewRoot.java:1407)
    05-22 10:01:16.397: E/AndroidRuntime(1839):     at android.view.ViewRoot.performTraversals(ViewRoot.java:1163)
    05-22 10:01:16.397: E/AndroidRuntime(1839):     at android.view.ViewRoot.handleMessage(ViewRoot.java:1727)
    05-22 10:01:16.397: E/AndroidRuntime(1839):     at android.os.Handler.dispatchMessage(Handler.java:99)
    05-22 10:01:16.397: E/AndroidRuntime(1839):     at android.os.Looper.loop(Looper.java:123)
    05-22 10:01:16.397: E/AndroidRuntime(1839):     at android.app.ActivityThread.main(ActivityThread.java:4627)
    05-22 10:01:16.397: E/AndroidRuntime(1839):     at java.lang.reflect.Method.invokeNative(Native Method)
    05-22 10:01:16.397: E/AndroidRuntime(1839):     at java.lang.reflect.Method.invoke(Method.java:521)
    05-22 10:01:16.397: E/AndroidRuntime(1839):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868)
    05-22 10:01:16.397: E/AndroidRuntime(1839):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626)
    05-22 10:01:16.397: E/AndroidRuntime(1839):     at dalvik.system.NativeStart.main(Native Method)
4

2 に答える 2

0

最初にボタンを押すと、viewgroupはimageviewを削除し、次にviewgroupにはImageviewが含まれません。2番目にボタンを押すと、imageviewがnullになるため、viewgroupからimageviewを削除することはできません。

于 2012-06-12T02:51:50.297 に答える
0

buttononclickクラスでメソッドを使用していますAnimationActivity。そのため、XML ファイルでどのボタンをクリックするかについて言及している場合は、それで問題ありません。どのボタンがクリックされたかを XML で言及
していない場合は、対応するメソッド呼び出しが行われるように、どのボタンがクリックされたかをアクティビティで言及する必要があります。もう1つ、ビューグループが見つからないため、nullポインター例外が表示される場合があります。値が null または見つからないビュー グループにアクセスまたは使用しようとしています。

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/layoutId"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical" >

    <ImageView android:id="@+id/imageviewID"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:src="@drawable/ic_launcher"
        android:contentDescription="@string/app_name"
        android:paddingBottom="50dip"
        />
    <Button android:id="@+id/alpha"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:text="@string/alpha"
        android:onClick="buttonOnclick"
        android:layout_below="@id/imageviewID"
        />
</RelativeLayout>
于 2012-05-22T05:39:00.207 に答える