-1

我已經制作了一個查看分頁器滑動演示,我有一個gridView,我已經顯示來自ImageURL的arrayList的圖像,現在我想在其點擊的下一個活動中顯示該圖像,然後它滑動滑動滑動,我已經爲它實現ViewPager,並已設置適配器viewPager,滑動功能工作正常,但是當我點擊從GridView的任何圖像時,它始終顯示從arrayList的第一個圖像,但它應該顯示已被點擊的圖像,所以總是從arrayList的第一個位置圖像是diaplsyed,所以我應該怎麼做從我點擊的圖像啓動ViewPager,請幫助和保存,謝謝你有一個愉快的一天。我的代碼如下:ViewPager以圖像arrayList的第一個索引開始

GridActivity.java

GridView gd_product; 
ArrayList<String> resultArray; 
@Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     requestWindowFeature(Window.FEATURE_NO_TITLE); 
     setContentView(R.layout.activity_subcategory); 
     initialize(); 
     sub_cat = getIntent().getStringExtra("sub_cat"); 
     cat_name = getIntent().getStringExtra("cat_name"); 
     menu.setSelectedTab(1); 
     titlesubCat.setText(cat_name); 

     System.out.println(":::::::::Inside catalog:::::::::"); 
     new GetSubCatalogList().execute(); 
     gd_product.setOnItemClickListener(new OnItemClickListener() { 

      @Override 
      public void onItemClick(AdapterView<?> parent, View view, 
        int position, long id) { 
       big_image = subCatList.get(position).get(Const.TAG_BIG_IMG); 
       i = new Intent(SubCatagoryActivity.this, DetailsActivity.class); 
       i.putStringArrayListExtra("array", resultArray); 
       i.putExtra(Const.TAG_BIG_IMG, big_image); 
       i.putExtra("cat_name", cat_name); 
       i.putExtra("pos", position); 

       startActivity(i); 

      } 
     }); 

這裏big_Image是IMAGEURL它被點擊,並且POS是IMAGEURL的ResultArray內(IMAGEURL的ArrayList)

BigImage.java

ArrayList<String> resultArray; 
    private DisplayImageOptions options; 
    public static ImageLoader imageLoader; 
resultArray = getIntent().getStringArrayListExtra("array"); 
     viewPager = (ViewPager) findViewById(R.id.view_pager); 
     viewPager.setVisibility(View.VISIBLE); 

     adapter = new ImagePagerAdapter(); 

     pos = getCategoryPos(big_img); 
     System.out.println("::::::::::::::INDEX OF::::::::::::" + pos); 
     viewPager.setCurrentItem(pos); 
viewPager.setOnTouchListener(new OnTouchListener() { 

      @Override 
      public boolean onTouch(View v, MotionEvent event) { 
       if (event.getAction() == MotionEvent.ACTION_UP) { 

        if (isOnClick) { 
         if (event.getX() > viewPager.getWidth()/2) { 
          // go to next 

          viewPager.setCurrentItem(pos, true); 

          pos++; 
         } else { 
          viewPager.setCurrentItem(pos, true); 
          pos--; 
          // go to previous 
         } 
         return true; 
        } 
       } 
       return false; 
      } 
     }); 

private class ImagePagerAdapter extends PagerAdapter { 

     @Override 
     public int getCount() { 
      return resultArray.size(); 
     } 

     @Override 
     public boolean isViewFromObject(View view, Object object) { 
      return view == ((ImageView) object); 
     } 

     @Override 
     public Object instantiateItem(ViewGroup container, int position) { 
      Context context = DetailsActivity.this; 
      ImageView imageView; 
      imageView = new ImageView(context); 
      try { 

       int padding = context.getResources().getDimensionPixelSize(
         R.dimen.padding_medium); 
       imageView.setPadding(padding, padding, padding, padding); 
       imageView.setScaleType(ImageView.ScaleType.FIT_XY); 

       imageLoader.displayImage(resultArray.get(position), imageView); 

       ((ViewPager) container).addView(imageView, 0); 
      } catch (NotFoundException e) { 
       // TODO Auto-generated catch block 
       e.printStackTrace(); 
      } 
      return imageView; 
     } 

     @Override 
     public void destroyItem(ViewGroup container, int position, Object object) { 
      ((ViewPager) container).removeView((ImageView) object); 
     } 
    } 
int getCategoryPos(String category) { 
     return resultArray.indexOf(category); 
    } 
的位置
+0

太多的代碼,我不能得到你所做的。所有你必須做的事情,發送位置或發送一個對象到下一個班級, –

回答

0

你在哪裏爲你的GrodView設置了一個適配器? 你看了here

+0

謝謝...先生...我很難解決它 – jigar

相關問題