2

我的OnClickListener应用中有一个图像。如果需要,它允许用户跳到应用程序的不同部分。应用程序的运行方式,他们只能使用 3 次。

我的问题是,我想买漂亮的裤子。所以我添加了一个R.anim.fade_out动画,使图像在使用完所有 3 次后淡出。我正在使用另一种方法减少一个计数器。

问题是,当调用原始方法时,它会抛出 a ,Null Reference Exception因为它找不到要设置OnClickListener. 我尝试将其包装在一个If/Else If声明中:

if(skipsAllowed > 0){

            skipButton.setOnClickListener(new OnClickListener(){

                public void onClick(View v){

                    if(skipsAllowed > 0){
                        try {
                            skippedPage();
                        } catch (IOException e) {
                            // TODO Auto-generated catch block
                            e.printStackTrace();
                        }
                    }

                }
            });

        }else  if(skipsAllowed == 0){
            skipFadeOut = AnimationUtils.loadAnimation(null, android.R.anim.fade_out);
            skipButton.startAnimation(skipFadeOut);
        }

这仍然没有奏效。关于如何阻止这种情况的任何想法?

ImageView我在每次对 this 的新调用开始时实例化Activity,我应该将它放在我的If/Else If 中吗?

4

3 回答 3

9

简单的:skipButton.setOnClickListener(null)

于 2015-01-29T16:20:13.037 回答
2

您收到异常是因为您将空上下文传递给loadAnimation.

您可以通过以下方式获取应用程序上下文: getApplicationContext()

动画开始后,您应该将按钮设置为INVISIBLE以完全隐藏跳过按钮

Animation skipFadeOut = AnimationUtils.loadAnimation(getApplicationContext(), android.R.anim.fade_out);
        skipButton.startAnimation(skipFadeOut);
        skipButton.setVisibility(View.INVISIBLE);
于 2013-07-11T20:12:28.783 回答
2

如果skipsAllowed == 0注销onClickListener

请参阅删除 onclick 侦听器

顺便说一句,你应该检查你的代码,我们通常只设置一次点击监听器。

于 2013-07-11T19:07:39.557 回答