解决方案 »

  1.   

    public class CopyOfViewPaperActivity extends Activity implements OnPageChangeListener {
    private ViewPager vp;
    private MyAdapter vpAdapter;
    //private ViewPagerAdapter vpAdapter;
    private List<View> views;
    private GridView attamGridView;
    private TextView text;
    private Button addattach;
    // \u5e95\u90e8\u5c0f\u70b9\u56fe\u7247
    private ImageView[] dots; // \u8bb0\u5f55\u5f53\u524d\u9009\u4e2d\u4f4d\u7f6e
    private int currentIndex;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);
    addattach = (Button) findViewById(R.id.addattachment);
    addattach.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
    addattach();
    vpAdapter.notifyDataSetChanged();
    }
    });
    //addattach();
    // \u521d\u59cb\u5316\u9875\u9762
    initViews(); // \u521d\u59cb\u5316\u5e95\u90e8\u5c0f\u70b9
    initDots();
    } private void initViews() {
    LayoutInflater inflater = LayoutInflater.from(this); views = new ArrayList<View>();
    // \u521d\u59cb\u5316\u5f15\u5bfc\u56fe\u7247\u5217\u8868
    views.add(inflater.inflate(R.layout.layout1, null));
    views.add(inflater.inflate(R.layout.layout2, null));
    views.add(inflater.inflate(R.layout.layout3, null)); // \u521d\u59cb\u5316Adapter
    //vpAdapter = new ViewPagerAdapter(views,this);
    vpAdapter = new MyAdapter();

    vp = (ViewPager) findViewById(R.id.viewpager);
    vp.setAdapter(vpAdapter);
    // \u7ed1\u5b9a\u56de\u8c03
    vp.setOnPageChangeListener(this);
    } private void initDots() {
    LinearLayout group = (LinearLayout) findViewById(R.id.viewGroup); dots = new ImageView[views.size()]; // \u5faa\u73af\u53d6\u5f97\u5c0f\u70b9\u56fe\u7247
    for (int i = 0; i < views.size(); i++) {
    ImageView imageView = new ImageView(this);  
                imageView.setLayoutParams(new LayoutParams(10,10));  
                dots[i] = imageView;  
                if(i == 0){  
                 dots[i].setBackgroundResource(R.drawable.page_indicator_focused);  
                }else{  
                 dots[i].setBackgroundResource(R.drawable.page_indicator_unfocused);  
                }  
                  
                LinearLayout.LayoutParams layoutParams = new LinearLayout.LayoutParams(new ViewGroup.LayoutParams(LayoutParams.WRAP_CONTENT,    
                        LayoutParams.WRAP_CONTENT));  
                layoutParams.leftMargin = 5;  
                layoutParams.rightMargin = 5;  
                group.addView(imageView, layoutParams);
    } currentIndex = 0;
    dots[currentIndex].setEnabled(false);// \u8bbe\u7f6e\u4e3a\u767d\u8272\uff0c\u5373\u9009\u4e2d\u72b6\u6001
    } // \u5f53\u6ed1\u52a8\u72b6\u6001\u6539\u53d8\u65f6\u8c03\u7528
    @Override
    public void onPageScrollStateChanged(int arg0) {
    } // \u5f53\u5f53\u524d\u9875\u9762\u88ab\u6ed1\u52a8\u65f6\u8c03\u7528
    @Override
    public void onPageScrolled(int arg0, float arg1, int arg2) {
    } // \u5f53\u65b0\u7684\u9875\u9762\u88ab\u9009\u4e2d\u65f6\u8c03\u7528
    @Override
    public void onPageSelected(int arg0) {
    // \u8bbe\u7f6e\u5e95\u90e8\u5c0f\u70b9\u9009\u4e2d\u72b6\u6001
    //setCurrentDot(arg0);
     setImageBackground(arg0 % 3); 
    }

    public class MyAdapter extends PagerAdapter{  
      
            @Override  
            public int getCount() {  
             if (views != null) {
         return views.size();
         }
         return 0;
            }  
            @Override  
            public boolean isViewFromObject(View arg0, Object arg1) {  
                return arg0 == arg1;  
            }  
            // \u9500\u6bc1arg1\u4f4d\u7f6e\u7684\u754c\u9762
         @Override
         public void destroyItem(View arg0, int arg1, Object arg2) {
         ((ViewPager) arg0).removeView(views.get(arg1));
         } 
            /** 
             * \u8f7d\u5165\u56fe\u7247\u8fdb\u53bb\uff0c\u7528\u5f53\u524d\u7684position \u9664\u4ee5 \u56fe\u7247\u6570\u7ec4\u957f\u5ea6\u53d6\u4f59\u6570\u662f\u5173\u952e 
             */  
            @Override  
            public Object instantiateItem(View arg0, int arg1) {
             ((ViewPager) arg0).addView(views.get(arg1), 0);
         return views.get(arg1);  
            }  
        }  
        /** 
         * \u8bbe\u7f6e\u9009\u4e2d\u7684tip\u7684\u80cc\u666f 
         * @param selectItems 
         */  
        private void setImageBackground(int selectItems){  
            for(int i=0; i<dots.length; i++){  
                if(i == selectItems){  
                 dots[i].setBackgroundResource(R.drawable.page_indicator_focused);  
                }else{  
                 dots[i].setBackgroundResource(R.drawable.page_indicator_unfocused);  
                }  
            }  
        }  
        public void addattach(){
         LinearLayout layout = (LinearLayout) getLayoutInflater().inflate(R.layout.layout1, null);
         text = (TextView) layout.findViewById(R.id.text);
         text.setText("aaaa");
        }}刚才发的有点问题