【问题标题】:Attempt to invoke virtual method 'void android.view.View.setAnimation(android.view.animation.Animation)' on a null object reference [duplicate]尝试在空对象引用上调用虚拟方法“void android.view.View.setAnimation(android.view.animation.Animation)”[重复]
【发布时间】:2019-11-08 07:30:56
【问题描述】:

我有通知菜单图标。我需要在调用onCreateOptionsMenu() 时对其进行动画处理。

在实施时,我一直面临如下问题 -

Attempt to invoke virtual method 'void 
android.view.View.setAnimation(android.view.animation.Animation)' on a 
null object reference.

Java 代码:

private Animation animation;
@Override
public boolean onCreateOptionsMenu(Menu menu) {
    getMenuInflater().inflate(R.menu.home_screen,menu);

    animation = 
 AnimationUtils.loadAnimation(getApplicationContext(),R.anim.notify);

menu.findItem(R.id.notifications).getActionView().setAnimation(animation);

    return super.onCreateOptionsMenu(menu);
}

home_screen.xml:

 <?xml version="1.0" encoding="utf-8"?>
 <menu xmlns:android="http://schemas.android.com/apk/res/android"
 xmlns:app="http://schemas.android.com/apk/res-auto">
 <item
    android:id="@+id/notifications"
    android:title="@string/action_settings"
    app:showAsAction="ifRoom"
    android:icon="@drawable/notifications"/>
  </menu>

通知.xml:

 <?xml version="1.0" encoding="utf-8"?>
 <rotate xmlns:android="http://schemas.android.com/apk/res/android"
android:fromDegrees="0"
android:toDegrees="180"
android:pivotX="50%"
android:pivotY="50%"
android:duration="500"
android:interpolator="@android:anim/accelerate_interpolator" />

请告诉我解决问题的方法。 提前致谢。

【问题讨论】:

    标签: java android android-animation android-menu


    【解决方案1】:

    根据this 的回答,您需要先设置操作视图。并尝试将图像视图作为自定义操作视图来为您的菜单项设置动画以获得更多参考参考this

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多