2012-06-13 124 views
2

我有一個程序使用視圖鰭我得到一個NullPointerException當調用活動時如下。只要活動正在運行,我希望循環播放一組圖像。ViewFlipper導致空指針異常

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> 
+2

僅供參考,AbsoluteLayout已被棄用。 –

回答

1

你可以試試這個方法:

可運行=新的Runnable(){

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

變化

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

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

要添加到Waqas點。

您在遵循下面的一段代碼時遇到嚴重問題。

 runnable = new Runnable() { 

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

      } 
     }; 

     handler.postDelayed(runnable, 500); 
+0

是的,我刪除了這部分..任何想法如何自動循環使用viewflipper –