【发布时间】:2018-10-18 03:00:19
【问题描述】:
我需要关于操作栏中的刷新按钮的帮助。我已经有了这个按钮,但我想让它在点击时旋转。我在这里写了这段代码,但我收到了一个错误,应用程序崩溃了:
错误:
java.lang.NullPointerException: Attempt to invoke virtual method 'void android.view.View.setOnClickListener(android.view.View$OnClickListener)' on a null object reference
Mx 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"
xmlns:compat="http://schemas.android.com/tools">
<item
android:id="@+id/menu_reloadbutton"
android:icon="@drawable/ic_menu_reloadentry"
android:title="@string/menu_reloadentry"
app:showAsAction="ifRoom"/>
</menu>
我的代码:
@Override
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
inflater.inflate(R.menu.menu_training, menu);
// Declare ImageView and Animation for rotation animation
MenuItem reloadButton = (MenuItem) menu.findItem(R.id.menu_reloadbutton);
final Animation rotation = AnimationUtils.loadAnimation(getActivity(), R.anim.animation_rotate);
if (reloadButton != null) {
//reloadButton.setImageResource(R.drawable.ic_menu_reloadentry);
reloadButton.getActionView().setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
rotation.setRepeatCount(Animation.INFINITE);
view.startAnimation(rotation);
}
});
}
}
【问题讨论】:
-
这是规范的,但它已经过时了:stackoverflow.com/questions/9731602/… 这也是一个更新的答案:stackoverflow.com/a/19225651/4409409
-
@DanielNugent 好的,谢谢!我搜索了很多,但我从来没有看到这个答案...请你删除这个重复项吗?因为我被阻止提问了。我将在此之后删除此问题。
-
@DanielNugent 非常感谢 :)
-
@DanielNugent 你能看看这个吗?