尝试在空对象引用上调用虚拟方法'void android.view.View.setAnimation(android.view.animation.Animation)'

问题描述 投票:0回答:1

我有通知菜单图标。我需要在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>

notify.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个回答
0
投票

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

© www.soinside.com 2019 - 2024. All rights reserved.