java - 尝试在空对象引用上调用虚方法 void android.widget.ImageView.startAnimation

标签 java android

我希望当用户单击“ans_third_btn_one”按钮时出现一个对话框,在该对话框中,我想在旭日 ImageView 上实现旋转动画。这段代码中唯一的问题是“sunburst.startAnimation”。如果我删除这一行,那么代码可以正常工作,但没有动画。使用这行代码我的应用程序崩溃了。感谢您帮助我。

    public class GamePlay extends AppCompatActivity implements View.OnClickListener    {

    Button ans_three_btn_one;

   @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_game_play);

        ans_three_btn_one = findViewById(R.id.ans_three_first_btn);
        ans_three_btn_one.setOnClickListener(this);
    }

    @Override
    public void onClick(View v) {
        Dialog first_prize_dialog = new Dialog(this,android.R.style.Theme_Black_NoTitleBar_Fullscreen);
        first_prize_dialog.setContentView(R.layout.activity_first_prize);
        first_prize_dialog.getWindow().setBackgroundDrawableResource(android.R.color.transparent);
        first_prize_dialog.show();

        ImageView sunbrust = findViewById(R.id.sunbrust_img);
        //----Error area start ---
        sunbrust.startAnimation(AnimationUtils.loadAnimation(v.getContext(),R.anim.rotate));
        //----Error area end ---
    }




java.lang.NullPointerException: Attempt to invoke virtual method 'void android.widget.ImageView.startAnimation(android.view.animation.Animation)' on a null object reference

Application terminated.

最佳答案

您在 findViewById 之前错过了 first_prize_dialog

将会

ImageView sunbrust = first_prize_dialog.findViewById(R.id.sunbrust_img);

关于java - 尝试在空对象引用上调用虚方法 void android.widget.ImageView.startAnimation,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51840992/

相关文章:

Java/有关对象声明和健全性检查的处理

javascript - 不同网站上的不同用户代理

android - AnimationDrawable暂停?

java - 如何衡量View的渲染时间?

java - 两个线程可以同时访问一个同步方法吗?

java - 将文件的路径发送到谷歌驱动器

java - 比较java中不同语言环境的2个文本文件

java - 使用 Appium 和 Java 在 Android 应用程序上加载配置文件

java - 将 "2 backgrounds"设置为按钮

android - 限制 ContentResolver.query() 函数中的行数