-1

我有問題顯示圖像的圖像滑塊android.I從JSON獲取圖像,但始終只顯示索引的最後一個圖像,假設如果我可以移動在Android中一次又一次查看傳呼機相同的圖像並顯示圖像滑動。 我不知道是什麼問題,我幾乎盡我所能,但我真的找不到那個錯誤。 任何人都可以幫助解決我的問題。In View Pager只顯示最後一張圖片來自Json反覆在android

CODE:

protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_zoomproduct_); 
    options = new DisplayImageOptions.Builder() 
     .showStubImage(R.drawable.b2) 
     .showImageForEmptyUri(R.drawable.b2) 
     .showImageOnFail(R.drawable.b2) 
     .build(); 


    /******************** this is for single page product ***********************/ 

    Intent singleproductpage = getIntent(); 
    singlepro = singleproductpage.getStringExtra("currentinedx"); 
    Intent multipleimages = getIntent(); 
    multipleimg = multipleimages.getStringExtra("multipleimages"); 
    Intent productpath = getIntent(); 
    productpaths = productpath.getStringExtra("productpath"); 
    Intent seller = getIntent(); 
    sellers = seller.getStringExtra("sellerid"); 
    // pDialog = new ProgressDialog(Zoomproduct_Activity.this); 
    // pDialog.setMessage("Please wait..."); 
    // pDialog.setCancelable(false); 
    singleproduct(); 
    viewPager = (ViewPager) findViewById(R.id.pager); 
    // Pass results to ViewPagerAdapter Class 
    adapter = new ZoomAdapter(Zoomproduct_Activity.this, adlist); 
    // Binds the Adapter to the ViewPager 
    viewPager.setAdapter(adapter); 
    adapter.notifyDataSetChanged(); 
} 

multipleimage = new JSONArray(multiimg); 
if (multipleimage.length() > 0) { 
    for (int i = 0; i < multipleimage.length(); i++) { 

     JSONObject singleimg = multipleimage.getJSONObject(i); 
     /*oneimg = singleimg.getString("original_res"); 
     String singleImages= productpath+sid+ '/'+ oneimg;*/ 
     // zoom.setImageUrl(productpaths+sellers+ '/'+singleimg.getString("original_res")); 
     // imgs.add(zoom); 
     String imagesone = productpaths + sellers + '/' + singleimg.getString("original_res"); 
     map.put(TAG_IMAGE, imagesone); 
     adlist.add(map); 
     String imgs1 = String.valueOf(adlist); 
     //String zoom1=String.valueOf(imgs1); 
     // Log.d(zoom1,"zoom"); 
     Log.d(imgs1, "ararlist"); 

    } 
} 

適配器:

public class ZoomAdapter extends PagerAdapter { 
    LayoutInflater inflator; 
    ImageView imgDisplay; 
    Context context; 
    // ArrayList<ZoomimageModel> slideShowImages; 
    // ArrayList<String> slideShowImages; 
    private ArrayList < HashMap < String, String >> slideShowImages; 
    HashMap < String, String > plotimages; 

    DisplayImageOptions options; 

    public ZoomAdapter(Context context, ArrayList < HashMap < String, String >> slideShowImages) { 
     this.context = context; 
     this.slideShowImages = slideShowImages; 
     options = new DisplayImageOptions.Builder() 
      .showStubImage(R.drawable.slip1) 
      .showImageForEmptyUri(R.drawable.b2) 
      .showImageOnFail(R.drawable.ic_drawer) 
      .build(); 
    } 
    @Override 
    public int getCount() { 
     return slideShowImages.size(); 
    } 
    public int getItemPosition(Object object) { 
     return POSITION_NONE; 
    } 


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

    // @Override 
    public Object instantiateItem(ViewGroup container, final int position) { 
     inflator = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
     View viewLayout = inflator.inflate(R.layout.productzoomrow, container, 
      false); 
     imgDisplay = (ImageView) viewLayout.findViewById(R.id.imgDisplay); 
     // ZoomimageModel zooms=slideShowImages.get(position); 
     plotimages = slideShowImages.get(position); 

     // System.out.println("ImageUrl---------------------"+slideShowImages.get(position).getImageUrl()); 
     System.out.println("ImageUrl---------------------" + plotimages.get(Zoomproduct_Activity.TAG_IMAGE)); 
     // YelloPage.imageLoader.displayImage(zooms.getImageUrl(), imgDisplay, options); 
     YelloPage.imageLoader.displayImage(plotimages.get(Zoomproduct_Activity.TAG_IMAGE), imgDisplay, options); 

     container.addView(viewLayout); 
     return viewLayout; 
    } 



    @Override 
    public void destroyItem(ViewGroup container, int position, Object object) { 
     // ((ViewPager) container).removeView((ImageView) object); 
     (container).removeView((RelativeLayout) object); 
     // container.removeView((View) object); 
    } 

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


    /* @Override 
    public void destroyItem(ViewGroup container, int position, Object object) 
    { 
     ((ViewPager) container).removeView((ImageView) object); 
    }*/ 
} 

logcat的showimages:

[05 - 07 02: 06: 15.445 26970: 26970 D/[{ 
       original_res = http: //192.168.0.33/cartwebsite3/cdn-images/prd/1/lenovo-a6000-171452579105.jararlist 

        [05 - 07 02: 06: 15.445 26970: 26970 D/[{ 
           original_res = http: //192.168.0.33/cartwebsite3/cdn-images/prd/1/lenovo-a6000-791452579106.jararlist 

            [05 - 07 02: 06: 15.445 26970: 26970 D/[{ 
               original_res = http: //192.168.0.33/cartwebsite3/cdn-images/prd/1/lenovo-a6000-971452579106.jararlist 

                [05 - 07 02: 06: 15.445 26970: 26970 D/[{ 
                   original_res = http: //192.168.0.33/cartwebsite3/cdn-images/prd/1/lenovo-a6000-341452579106.jararlist 

                    [05 - 07 02: 06: 15.445 26970: 26970 D/[{ 
                       original_res = http: //192.168.0.33/cartwebsite3/cdn-images/prd/1/lenovo-a6000-891452579106.jararlist 

                        [05 - 07 02: 06: 15.445 26970: 26970 D/[{ 
                           original_res = http: //192.168.0.33/cartwebsite3/cdn-images/prd/1/lenovo-a6000-441452579106.jararlist 
                            05 - 07 02: 06: 15.445 26970 - 26970/com.journaldev.navigationdrawer D/lenovo - a6000 - 171452579105. jpeg: images 
                           05 - 07 02: 06: 15.445 26970 - 26970/com.journaldev.navigationdrawer D/lenovo - a6000 - 791452579106. jpeg: images 
                           05 - 07 02: 06: 15.446 26970 - 26970/com.journaldev.navigationdrawer D/lenovo - a6000 - 971452579106. jpeg: images 
                           05 - 07 02: 06: 15.446 26970 - 26970/com.journaldev.navigationdrawer D/lenovo - a6000 - 341452579106. jpeg: images 
                           05 - 07 02: 06: 15.446 26970 - 26970/com.journaldev.navigationdrawer D/lenovo - a6000 - 891452579106. jpeg: images 
                           05 - 07 02: 06: 15.446 26970 - 26970/com.journaldev.navigationdrawer D/lenovo - a6000 - 441452579106. jpeg: images 
                           05 - 07 02: 06: 15.448 754 - 7094/system_process V/WindowManager: Adding window Window { 
                            39992643 u0 com.journaldev.navigationdrawer/com.journaldev.navigationdrawer.Activity.Zoomproduct_Activity 
                           } 
                           at 4 of 9(after Window { 
                            2 fb8c08e u0 com.journaldev.navigationdrawer/com.journaldev.navigationdrawer.Activity.singleshooppingcart 
                           }) 
                           05 - 07 02: 06: 15.464 26970 - 26970/com.journaldev.navigationdrawer I/System.out: ImageUrl-- -- -- -- -- -- -- -- -- -- - http: //192.168.0.33/cartwebsite3/cdn-images/prd/1/lenovo-a6000-441452579106.jpeg 
                            05 - 07 02: 06: 15.477 26970 - 26970/com.journaldev.navigationdrawer I/System.out: ImageUrl-- -- -- -- -- -- -- -- -- -- - http: //192.168.0.33/cartwebsite3/cdn-images/prd/1/lenovo-a6000-441452579106.jpeg 
                            05 - 07 02: 06: 15.535 26970 - 27049/com.journaldev.navigationdrawer W/EGL_emulation: eglSurfaceAttrib not implemented 
                           05 - 07 02: 06: 15.536 26970 - 27049/com.journaldev.navigationdrawer W/OpenGLRenderer: Failed to set EGL_SWAP_BEHAVIOR on surface 0xe2266e00, 
                           error = EGL_SUCCESS 
                           05 - 07 02: 06: 15.792 754 - 780/system_process I/ActivityManager: Displayed com.journaldev.navigationdrawer/.Activity.Zoomproduct_Activity: +358 ms 
                           05 - 07 02: 06: 16.062 715 - 715/? W/SurfaceFlinger : couldn 't log to binary event log: overflow. 
                           05 - 07 02: 06: 20.092 26970 - 26970/com.journaldev.navigationdrawer I/System.out: ImageUrl-- -- -- -- -- -- -- -- -- -- - http: //192.168.0.33/cartwebsite3/cdn-images/prd/1/lenovo-a6000-441452579106.jpeg 
                            05 - 07 02: 06: 20.256 754 - 1067/system_process D/WifiService: acquireWifiLockLocked: WifiLock { 
                             NlpWifiLock type = 2 binder = android.os.BinderProxy @997c048 
                            } 

很高興欣賞到解決我的問題

+0

你能解釋一下爲什麼你要使用'HashMap'的'ArrayList'而不是你使用'String'的'ArrayList'並且按位置獲得'image'。 –

+0

你的代碼中的問題是你對每個圖像使用相同的'IMAGE_TAG',所以添加到'HashMap'中的最後一個圖像將會顯示 –

+0

在我不使用HashMap之前,我使用了模型來設置和獲取圖像,但是那一個也是我得到了相同的圖像 – Nivethitha

回答

2

您可以更改ArrayList<HashMap<String,String>>ArrayList<String>,因爲它似乎HashMap不需要從您的代碼。

接下來你for循環中,您在其中添加圖像路徑HashMap,而不是直接添加到ArrayList

然後在getView()PagerAdapter使用slideShowImages.get(position)得到ArrayList<>圖像,

+0

感謝哥們,真的非常感謝,我犯了小錯誤讓我頭疼。 – Nivethitha

+0

現在satyen工作很好。 – Nivethitha

+0

太好了。樂意幫忙:) –

相關問題