Java ProgressBar在AnimationListener上给我NullPointerException

Java ProgressBar在AnimationListener上给我NullPointerException,java,android,animation,nullpointerexception,progress-bar,Java,Android,Animation,Nullpointerexception,Progress Bar,我正在做一个项目,在我的意图中添加了一个ProgressBar。ProgressBar位于图像顶部 每当我添加以下代码时 @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_greet); pb = (ProgressBar)f

我正在做一个项目,在我的意图中添加了一个
ProgressBar
ProgressBar
位于图像顶部

每当我添加以下代码时

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


        pb = (ProgressBar)findViewById(R.id.progressBar1);


        pb.getAnimation().setAnimationListener(new AnimationListener(){

            @Override
            public void onAnimationEnd(Animation animation) {
                // TODO Auto-generated method stub

            }

            @Override
            public void onAnimationRepeat(Animation animation) {
                // TODO Auto-generated method stub

            }

            @Override
            public void onAnimationStart(Animation animation) {
                // TODO Auto-generated method stub

            }

        });

        Intent intent = new Intent(Greet.this, SearchField.class);
        startActivity(intent);

    }
我得到一个
nullPointerException

当我移除

pb.getAnimation().setAnimationListener(new AnimationListener(){

            @Override
            public void onAnimationEnd(Animation animation) {
                // TODO Auto-generated method stub

            }

            @Override
            public void onAnimationRepeat(Animation animation) {
                // TODO Auto-generated method stub

            }

            @Override
            public void onAnimationStart(Animation animation) {
                // TODO Auto-generated method stub

            }

        });
错误消失了

我不明白为什么我会得到NullPointerException,查看代码,一切看起来都应该是这样的

我觉得我即将在这里学到一些新东西,因为我清理了这个项目,尝试了它,错误总是不断发生。。所以我不确定我错过了什么

编辑:

XML中的ActivityGreet

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="#ffffff"
    tools:context=".Greet" >

    <ImageView
        android:id="@+id/fitnessPic"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:contentDescription="@string/description"
        android:src="@drawable/appleorange"/>

    <ProgressBar
        android:id="@+id/progressBar1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true"
        android:layout_centerHorizontal="true"
        android:layout_marginBottom="64dp" />

</RelativeLayout>

在图像上放置进度条是否存在已知问题

  • 确保活动布局中存在id为
    progressBar1
    ProgressBar
  • 确保您正在导入项目的
    R
    类,而不是
    android.R
    ,因为
    android.R
    可能也包含
    R.id.progressBar1

  • 我想您还没有在/res/anim文件夹中定义动画。按如下方式更改代码:

    ProgressBar pb = (ProgressBar) findViewById(R.id.progressbar1);
    Animation progressAnimation= AnimationUtils.loadAnimation(this, R.anim.progressAnim);
    pb.startAnimation(progressAnimation);
    
    并单独实现动画侦听器,而不是使其匿名


    有关更多详细信息,请参阅。

    底部的建议均无效。