package com.example.viewpage_animation_app;
import java.util.ArrayList;
import java.util.List;
import android.app.Activity;
import android.os.Bundle;
import android.support.v4.view.PagerAdapter;
import android.support.v4.view.ViewPager;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.Toast;
public class MainActivity extends Activity {
ViewPager iviewpager;
List<ImageView> ilist = new ArrayList<ImageView>();
int[] image = new int[] { R.drawable.ic_launcher, R.drawable.guide_image2, R.drawable.guide_image3 };
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
init();
iviewpager.setAdapter(new PagerAdapter() {
@Override
public Object instantiateItem(ViewGroup container, int position) {
// TODO Auto-generated method stub
if (ilist.get(position) != null) {
container.addView(ilist.get(position));
} else {
Toast.makeText(MainActivity.this, "The null", Toast.LENGTH_SHORT).show();
}
return ilist.get(position);
}
@Override
public void destroyItem(ViewGroup container, int position, Object object) {
// TODO Auto-generated method stub
container.removeView((View) object);
}
@Override
public boolean isViewFromObject(View arg0, Object arg1) {
// TODO Auto-generated method stub
return arg0 == arg1;
}
@Override
public int getCount() {
// TODO Auto-generated method stub
return ilist.size();
}
});
}
private void init() {
// TODO Auto-generated method stub
iviewpager = (ViewPager) findViewById(R.id.viewpager);
for (int i = 0; i < image.length; i++) {
ImageView imageView = (ImageView) findViewById(image[i]);
ilist.add(imageView);
}
}
}
container.addView(ilist.get(position)); 此句一直显示空指针,加了一个条件语句,虽然不报错了,输出的是下面的那个toast。。。。。
、、
iviewpager = (ViewPager) findViewById(R.id.viewpager);
for (int i = 0; i < image.length; i++) {
ImageView imageView = (ImageView) findViewById(image[i]);
ilist.add(imageView);
}
、、
这里你就别findViewById了,用new ImageView创建吧。findViewById(image[i]);你获取的是什么,这个方法你都用错了
ilist这个是不是为空呢
你的list里面有数据吗?
adapter里面ilist没有值,你可以在init()最后加上notifysetchanged(这个不保证有效)或者将adapter拿出来,在new adapter的时候将list通过构造方法将list传入adapter。
楼上是对的
findViewById()里面的参数是R.id.xxx,而你的image[]里面是R.drawable.xxx
你的for循环里面可以这样写
for (int i = 0;i < image.length;i++){
ImageView imageView = new ImageView(this);
imageView.setImageResource(image[i]);
ilist.add(imageView);
}