Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/331.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/207.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何返回已创建的viewPager以动态添加更多图像视图_Java_Android_Dynamic_Android Viewpager - Fatal编程技术网

Java 如何返回已创建的viewPager以动态添加更多图像视图

Java 如何返回已创建的viewPager以动态添加更多图像视图,java,android,dynamic,android-viewpager,Java,Android,Dynamic,Android Viewpager,我有一个PagerAdapter,它显示从MainActivity类传递的位置字符串数组中收集的图像。我希望这样做,以便我可以在将来参考这个PagerAdapter,动态创建更多视图。我很好奇人们是如何开始这样做的?我的PagerAdapter代码(转换后的ArrayList是从MainActivity类传递的代码): public类ViewPagerAdapter扩展了PagerAdapter{ //声明变量 语境; ArrayList转换; ArrayList视图=新建ArrayList()

我有一个PagerAdapter,它显示从MainActivity类传递的位置字符串数组中收集的图像。我希望这样做,以便我可以在将来参考这个PagerAdapter,动态创建更多视图。我很好奇人们是如何开始这样做的?我的PagerAdapter代码(转换后的ArrayList是从MainActivity类传递的代码):

public类ViewPagerAdapter扩展了PagerAdapter{
//声明变量
语境;
ArrayList转换;
ArrayList视图=新建ArrayList();
充气机;
公共图像视图imgzoomer;
public ViewPagerAdapter(上下文,ArrayList已转换){
this.context=上下文;
this.converted=已转换;
}
@凌驾
public int getCount(){
返回转换后的.size();
}
@凌驾
公共布尔值isViewFromObject(视图,对象){
返回视图==((RelativeLayout)对象);
}
@凌驾
公共void setPrimaryItem(视图组容器、int位置、对象){
super.setPrimaryItem(容器、位置、对象);
if(position==converted.size()-1){
//声明变量和视图
//捕获位置并设置为ImageView
位图位图=位图工厂.decodeFile(转换的.get(位置));
bitmap.recycle();
setImageBitmap(位图);
//将布局\全屏\ image.xml添加到ViewPager
container.removeAllViewsInLayout();
container.removeallview();
container.addView(container,位置+1);
notifyDataSetChanged();
}
}
@凌驾
公共对象实例化项(视图组容器,int位置){
//声明变量和视图
充气器=(LayoutFlater)context.getSystemService(context.LAYOUT\u充气器\u服务);
视图项视图=充气机。充气(R.layout.layout\u全屏图像,容器,错误);
imgzoomer=(ImageView)itemView.findViewById(R.id.zoomer);
//捕获位置并设置为ImageView
位图位图=位图工厂.decodeFile(转换的.get(位置));
setImageBitmap(位图);
//将布局\全屏\ image.xml添加到ViewPager
container.addView(itemView,0);
返回项目视图;
}
@凌驾
公共项(视图组容器、int位置、对象){
//从viewpager中删除viewpager_item.xml
container.removeView(imgzoomer);
}
}
我想在MainActivityClass中再次引用ViewPager的部分:

protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        //get the view
        setContentView(R.layout.viewpager_main);
        ImageView imgzoomer;
        //Doinbackground ASYNCTASK (returns the converted arraylist, which is the location of the pics in the storage)
        new XMLParse().execute(url);

        //Locate ViewPager
        viewPager = (ViewPager) findViewById(R.id.pager);

        //PageChangeListener
        viewPager.setOnPageChangeListener(new OnPageChangeListener() {
            @Override

                            //THIS PART HERE<------------

            public void onPageScrolled(int position, float v, int i2) {
                if(position>=converted.size()-1){
                }
            }

            @Override
            public void onPageSelected(int position) {
            }

            @Override
            public void onPageScrollStateChanged(int i) {

            }
        });
    }
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
//看风景
setContentView(R.layout.viewpager_main);
ImageView-imgzoomer;
//Doinbackground ASYNCTASK(返回转换后的arraylist,它是PIC在存储器中的位置)
新建XMLParse().execute(url);
//找到寻呼机
viewPager=(viewPager)findViewById(R.id.pager);
//页面更改侦听器
viewPager.setOnPageChangeListener(新的OnPageChangeListener(){
@凌驾
//此处的此部分=已转换的.size()-1){
}
}
@凌驾
已选择页面上的公共无效(内部位置){
}
@凌驾
页面上的公共无效状态已更改(int i){
}
});
}

可能是我弄错了,但这难道不像添加到适配器,然后在.notifyDataSetChanged的帮助下更新您的ViewPager那么简单吗?目前,我在将其添加/更新到我的ViewPager时遇到问题--这会给我一个错误:指定的子项已经有父项。必须首先在setPrimaryItem上调用子级的父级上的removeView()。我已经更新了上面的代码。。。我是这方面的新手!
protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        //get the view
        setContentView(R.layout.viewpager_main);
        ImageView imgzoomer;
        //Doinbackground ASYNCTASK (returns the converted arraylist, which is the location of the pics in the storage)
        new XMLParse().execute(url);

        //Locate ViewPager
        viewPager = (ViewPager) findViewById(R.id.pager);

        //PageChangeListener
        viewPager.setOnPageChangeListener(new OnPageChangeListener() {
            @Override

                            //THIS PART HERE<------------

            public void onPageScrolled(int position, float v, int i2) {
                if(position>=converted.size()-1){
                }
            }

            @Override
            public void onPageSelected(int position) {
            }

            @Override
            public void onPageScrollStateChanged(int i) {

            }
        });
    }