public class Images extends Activity
{
private final static int[] images = {R.drawable.bg,R.drawable.bg0,
R.drawable.bg1,R.drawable.bg2,R.drawable.bg3}

解决方案 »

  1.   

    public class Images extends Activity
    {
    private final static int[] images = {R.drawable.bg,R.drawable.bg0,
    R.drawable.bg1,R.drawable.bg2,R.drawable.bg3};
    public static final String TAG="TAG";
    private int id;
    private ImageSwitcher switcher;
    public Images(){id=0;}
    public void onCreate(Bundle b)
    {
    super.onCreate(b);
    setContentView(R.layout.images);
    switcher = (ImageSwitcher)findViewById(R.id.imageSwitcher);
    Log.e(TAG,"1");
    switcher.setImageResource(R.drawable.bg7);
    Log.e(TAG,"2");
    switcher.setOnTouchListener(new View.OnTouchListener(){ private int Y; public boolean onTouch(View p1, MotionEvent p2)
    {Log.e(TAG,"3");

    switch (p2.getAction())
    {
    case MotionEvent.ACTION_DOWN :  Y = (int)p2.getY();
    case MotionEvent.ACTION_UP : {if (Y < (int)p2.getY())
    {if (id >= images.length)id = -1;switcher.setImageResource(images[id + 1]);}
    else
    {if (id <= 0)id = images.length;switcher.setImageResource(images[id - 1]);}}break;
    }
    return false;
    }
    });
    }}
    是不是数组初始化出错了(我试过各种初始化方法了啊)?或者是ImageSwitcher初始化的问题(程序在getImageResource这儿崩溃,我也快崩溃了)?TouchEvent的部分可能比较拙劣~没看过文档(英文的看不太明白,翻译api的大神们又往往留着些重要的类没翻译(比如Activity,比如Intent)现求!)
      

  2.   

    private final static int[] images = {R.drawable.bg,R.drawable.bg0,
     R.drawable.bg1,R.drawable.bg2,R.drawable.bg3};
    数组里面没有东西吧,应该先定义数组变量:private final static int[] images;然后在在onCreate方法中 images = {};
      

  3.   


    应该是因为对象初始化的时候还没有加载R.drawable之类的东西,识别不出来;
    把赋值部分拿掉,放到onCreate()里,就能识别了