【问题标题】:ViewFlipper causing null pointer exceptionViewFlipper 导致空指针异常
【发布时间】:2012-06-13 13:29:10
【问题描述】:

我有一个使用视图翻转器的程序,当调用活动时,我得到一个NullPointerException,如下所示。只要活动正在运行,我希望循环浏览一组图像。

06-13 18:52:05.358: E/AndroidRuntime(368): Caused by: java.lang.NullPointerException

活动:

import android.app.Activity;
import android.os.Bundle;
import android.os.Handler;
import android.view.View;
import android.view.ViewGroup.LayoutParams;
import android.view.animation.AnimationUtils;
import android.widget.ImageView;
import android.widget.ViewFlipper;


public class MainMenuActivity extends Activity{

     Handler handler;
     Runnable runnable;
     ViewFlipper imageSwitcher;
    @Override
        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.menupage);

            imageSwitcher= (ViewFlipper) new ViewFlipper(this).findViewById(R.id.sportspersons);
            this.viewchanger();

        }

    public void viewchanger()
    {
        imageSwitcher.setInAnimation(this, R.anim.fadein);  
        imageSwitcher.setOutAnimation(this, R.anim.fadeout); 

        ImageView i = new ImageView(this);
        i.setBackgroundDrawable(getResources().getDrawable(R.drawable.jowens));
        ImageView i2 = new ImageView(this);
        i2.setBackgroundDrawable(getResources ().getDrawable(R.drawable.maradonna));
        ImageView i3 = new ImageView(this);
        i2.setBackgroundDrawable(getResources().getDrawable(R.drawable.mjordan));
        ImageView i4 = new ImageView(this);
        i2.setBackgroundDrawable(getResources().getDrawable(R.drawable.pele));
        imageSwitcher.addView(i);
        imageSwitcher.addView(i2);
        imageSwitcher.addView(i3);
        imageSwitcher.addView(i4);

        runnable = new Runnable() {

            @Override
            public void run() {
                handler.postDelayed(runnable, 3000);
                imageSwitcher.showNext();

            }
        };
        handler.postDelayed(runnable, 500);
    }
}

XML:

<?xml version="1.0" encoding="utf-8"?>
<AbsoluteLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent" >
      <ImageView
        android:id="@+id/imageView2"
        android:layout_width="match_parent"
        android:layout_height="508dp"
        android:layout_x="-4dp"
        android:layout_y="-5dp"
        android:scaleType="fitXY"
        android:src="@drawable/mainmenu01" />

        <ViewFlipper 
           android:id="@+id/sportspersons"  
           android:layout_width="86dp"
           android:layout_height="91dp"
           android:layout_x="38dp"
        android:layout_y="373dp" />  
</AbsoluteLayout>

【问题讨论】:

  • 仅供参考,AbsoluteLayout 已弃用。

标签: android nullpointerexception


【解决方案1】:

你可以试试这个方法:

runnable = new Runnable() {

        @Override
        public void run() {
            handler.postDelayed(runnable, 3000);
            imageSwitcher.setAutoStart(true);  
            imageSwitcher.startFlipping();
        }
    };

【讨论】:

    【解决方案2】:

    改变

    imageSwitcher= (ViewFlipper) new ViewFlipper(this).findViewById(R.id.sportspersons);
    

    imageSwitcher= (ViewFlipper) findViewById(R.id.sportspersons);
    

    【讨论】:

      【解决方案3】:

      添加到 Waqas 点。

      你在下面的代码中有严重的问题。

              runnable = new Runnable() {
      
                  @Override
                  public void run() {
                      handler.postDelayed(runnable, 3000);
                      imageSwitcher.showNext();
      
                  }
              };
      
              handler.postDelayed(runnable, 500);
      

      【讨论】:

      • 是的,我删除了那部分......知道如何使用 viewflipper 自动循环
      猜你喜欢
      • 2014-04-02
      • 1970-01-01
      • 2014-08-02
      • 2015-09-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多