我希望当用户单击“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/